diff --git a/src/main/java/de/marhali/easyi18n/util/StringUtil.java b/src/main/java/de/marhali/easyi18n/util/StringUtil.java index 88c7ab8..6597dda 100644 --- a/src/main/java/de/marhali/easyi18n/util/StringUtil.java +++ b/src/main/java/de/marhali/easyi18n/util/StringUtil.java @@ -3,6 +3,7 @@ package de.marhali.easyi18n.util; import org.jetbrains.annotations.NotNull; import java.io.StringWriter; +import java.util.regex.Pattern; /** * String utilities @@ -10,6 +11,17 @@ import java.io.StringWriter; */ public class StringUtil { + /** + * Checks if the provided String represents a hexadecimal number. + * For example: {@code 0x100...}, {@code -0x100...} and {@code +0x100...}. + * @param string String to evaluate + * @return true if hexadecimal string otherwise false + */ + public static boolean isHexString(@NotNull String string) { + final Pattern hexNumberPattern = Pattern.compile("[+-]?0[xX][0-9a-fA-F]+"); + return hexNumberPattern.matcher(string).matches(); + } + /** * Escapes control characters for the given input string. * Inspired by Apache Commons (see {@link org.apache.commons.lang.StringEscapeUtils}