From 85073f7f5b8cc5ad6e9e7574e1065e516e295106 Mon Sep 17 00:00:00 2001 From: marhali Date: Tue, 22 Feb 2022 21:45:44 +0100 Subject: [PATCH] add utility method to check whether a string is valid hexadecimal number --- .../java/de/marhali/easyi18n/util/StringUtil.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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}