diff --git a/CHANGELOG.md b/CHANGELOG.md index 779fdec9e..92915ce9c 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ ### 🐞Bug修复 * 【extra 】 修复createExtractor中抛出异常后流未关闭问题(pr#2384@Github) * 【core 】 修复CsvData.getHeader没有判空导致空指针问题(issue#I5CK7Q@Gitee) +* 【core 】 修复单字母转换为数字的问题(issue#I5C4K1@Gitee) ------------------------------------------------------------------------------------------------------------- diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/NumberConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/NumberConverter.java index 421628c91..1a2837ff1 100644 --- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/NumberConverter.java +++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/NumberConverter.java @@ -68,7 +68,7 @@ public class NumberConverter extends AbstractConverter { @Override protected String convertToStr(Object value) { String result = StrUtil.trim(super.convertToStr(value)); - if (StrUtil.isNotEmpty(result)) { + if (null != result && result.length() > 1) { final char c = Character.toUpperCase(result.charAt(result.length() - 1)); if (c == 'D' || c == 'L' || c == 'F') { // 类型标识形式(例如123.6D) diff --git a/hutool-core/src/test/java/cn/hutool/core/map/MapUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/map/MapUtilTest.java index aa667dc45..0f371b072 100644 --- a/hutool-core/src/test/java/cn/hutool/core/map/MapUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/map/MapUtilTest.java @@ -217,4 +217,11 @@ public class MapUtilTest { Assert.assertEquals(Integer.valueOf(1), map.get("a")); Assert.assertEquals(Integer.valueOf(2), map.get("b")); } + + @Test(expected = NumberFormatException.class) + public void getIntTest(){ + final HashMap map = MapUtil.of("age", "d"); + final Integer age = MapUtil.getInt(map, "age"); + Assert.assertNotNull(age); + } } diff --git a/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java index 4368ada2f..d4ab4b079 100644 --- a/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java @@ -287,6 +287,12 @@ public class NumberUtilTest { Assert.assertEquals(1482, v1); } + @Test(expected = NumberFormatException.class) + public void parseIntTest3() { + int v1 = NumberUtil.parseInt("d"); + Assert.assertEquals(0, v1); + } + @Test public void parseNumberTest() { // from 5.4.8 issue#I23ORQ@Gitee