From 1da3acca6792dc5744117bbce3fa7a5bbca0e54f Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 25 Dec 2025 23:36:38 +0800 Subject: [PATCH] =?UTF-8?q?`HexUtil.isHexNumber`=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=A9=BA=E6=A3=80=E6=9F=A5=EF=BC=88pr#1420@Gitee=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hutool/v7/core/codec/binary/HexUtil.java | 3 +++ .../cn/hutool/v7/core/util/HexUtilTest.java | 20 ++++++++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/v7/core/codec/binary/HexUtil.java b/hutool-core/src/main/java/cn/hutool/v7/core/codec/binary/HexUtil.java index 17ca6fc949..e7cb49a990 100644 --- a/hutool-core/src/main/java/cn/hutool/v7/core/codec/binary/HexUtil.java +++ b/hutool-core/src/main/java/cn/hutool/v7/core/codec/binary/HexUtil.java @@ -96,6 +96,9 @@ public class HexUtil extends Hex { * @return 是否为16进制 */ public static boolean isHexNumber(final String value) { + if (StrUtil.isEmpty(value)) { + return false; + } if (StrUtil.startWith(value, '-')) { // issue#2875 return false; diff --git a/hutool-core/src/test/java/cn/hutool/v7/core/util/HexUtilTest.java b/hutool-core/src/test/java/cn/hutool/v7/core/util/HexUtilTest.java index 82a73eb4ca..4864cc25a8 100644 --- a/hutool-core/src/test/java/cn/hutool/v7/core/util/HexUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/v7/core/util/HexUtilTest.java @@ -23,7 +23,7 @@ import org.junit.jupiter.api.Test; import java.math.BigInteger; import java.nio.charset.StandardCharsets; -import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.*; /** * HexUtil单元测试 @@ -59,23 +59,29 @@ public class HexUtilTest { @Test public void isHexNumberTest() { - Assertions.assertTrue(HexUtil.isHexNumber("0")); - Assertions.assertTrue(HexUtil.isHexNumber("002c")); + assertTrue(HexUtil.isHexNumber("0")); + assertTrue(HexUtil.isHexNumber("002c")); String a = "0x3544534F444"; - Assertions.assertTrue(HexUtil.isHexNumber(a)); + assertTrue(HexUtil.isHexNumber(a)); // https://gitee.com/chinabugotech/hutool/issues/I62H7K a = "0x0000000000000001158e460913d00000"; - Assertions.assertTrue(HexUtil.isHexNumber(a)); + assertTrue(HexUtil.isHexNumber(a)); // 错误的 a = "0x0000001000T00001158e460913d00000"; - Assertions.assertFalse(HexUtil.isHexNumber(a)); + assertFalse(HexUtil.isHexNumber(a)); // 错误的,https://github.com/chinabugotech/hutool/issues/2857 a = "-1"; - Assertions.assertFalse(HexUtil.isHexNumber(a)); + assertFalse(HexUtil.isHexNumber(a)); + } + + @Test + public void isHexNumberTestForEmpty() { + assertFalse(HexUtil.isHexNumber("")); + assertFalse(HexUtil.isHexNumber(null)); } @Test