diff --git a/CHANGELOG.md b/CHANGELOG.md index 2283e45a8..2ed81eda0 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,12 +14,10 @@ * 【cron 】 修复Cron表达式range解析错误问题(issue#I82CSH@Gitee) * 【core 】 修复VersionComparator在极端数据排序时候违反了自反性问题(issue#I81N3H@Gitee) * 【json 】 修复JSONStrFormatter:format函数对于转义符号处理逻辑错误问题(issue#I84V6I@Gitee) -<<<<<<< HEAD * 【core 】 修复特定情况下BiMap覆盖Value后,仍能通过旧Value查询到Key问题(issue#I88R5M@Gitee) -======= * 【core 】 修复aop的afterException无法生效问题(issue#3329@Github) * 【core 】 修复TypeUtil.getClass方法强转报错问题(pr#1092@Github) ->>>>>>> fd9e1efa2860ded5cf2d1be5954fd87a2a5830fe +* 【core 】 修复DataSize.parse(size)不支持空格问题(issue#I88Z4Z@Gitee) ------------------------------------------------------------------------------------------------------------- # 5.8.22(2023-09-13) diff --git a/hutool-core/src/main/java/cn/hutool/core/io/unit/DataSize.java b/hutool-core/src/main/java/cn/hutool/core/io/unit/DataSize.java index 00a8e6bc5..8fa074a31 100644 --- a/hutool-core/src/main/java/cn/hutool/core/io/unit/DataSize.java +++ b/hutool-core/src/main/java/cn/hutool/core/io/unit/DataSize.java @@ -185,7 +185,7 @@ public final class DataSize implements Comparable { public static DataSize parse(CharSequence text, DataUnit defaultUnit) { Assert.notNull(text, "Text must not be null"); try { - final Matcher matcher = PATTERN.matcher(text); + final Matcher matcher = PATTERN.matcher(StrUtil.cleanBlank(text)); Assert.state(matcher.matches(), "Does not match data size pattern"); final DataUnit unit = determineDataUnit(matcher.group(3), defaultUnit); diff --git a/hutool-core/src/test/java/cn/hutool/core/io/unit/DataSizeUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/io/unit/DataSizeUtilTest.java index dcdc60057..feafb9a3a 100644 --- a/hutool-core/src/test/java/cn/hutool/core/io/unit/DataSizeUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/io/unit/DataSizeUtilTest.java @@ -60,4 +60,11 @@ public class DataSizeUtilTest { format = DataSizeUtil.format(1024L * 1024 * 1024 * 1024); Assert.assertEquals("1 TB", format); } + + @Test + public void issueI88Z4ZTest() { + final String size = DataSizeUtil.format(10240000); + final long bytes = DataSize.parse(size).toBytes(); + Assert.assertEquals(10244587, bytes); + } }