diff --git a/CHANGELOG.md b/CHANGELOG.md index d0c658db7..ccb2e82b2 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,10 +3,11 @@ ------------------------------------------------------------------------------------------------------------- -# 5.8.12.M1 (2022-12-27) +# 5.8.12.M1 (2023-01-15) ### 🐣新特性 ### 🐞Bug修复 +* 【core 】 修复HexUtil.isHexNumber()对"-"的判断问题(issue#2857@Github) ------------------------------------------------------------------------------------------------------------- diff --git a/hutool-core/src/main/java/cn/hutool/core/util/HexUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/HexUtil.java index 5a04f270e..8d9dda219 100755 --- a/hutool-core/src/main/java/cn/hutool/core/util/HexUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/HexUtil.java @@ -27,7 +27,11 @@ public class HexUtil { * @return 是否为16进制 */ public static boolean isHexNumber(String value) { - int index = (value.startsWith("-") ? 1 : 0); + if(StrUtil.startWith(value, '-')){ + // issue#2875 + return false; + } + int index = 0; if (value.startsWith("0x", index) || value.startsWith("0X", index)) { index += 2; } else if (value.startsWith("#", index)) { diff --git a/hutool-core/src/test/java/cn/hutool/core/util/HexUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/HexUtilTest.java index 161266c72..095381842 100755 --- a/hutool-core/src/test/java/cn/hutool/core/util/HexUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/HexUtilTest.java @@ -49,6 +49,10 @@ public class HexUtilTest { // 错误的 a = "0x0000001000T00001158e460913d00000"; Assert.assertFalse(HexUtil.isHexNumber(a)); + + // 错误的,https://github.com/dromara/hutool/issues/2857 + a = "-1"; + Assert.assertFalse(HexUtil.isHexNumber(a)); } @Test