From d5c6a6d217cc03003b6b90b153acb8c66a256b61 Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 18 Oct 2023 14:42:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DDataSize.parse(size)=E4=B8=8D?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=A9=BA=E6=A0=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/hutool/core/io/unit/DataSize.java | 2 +- .../org/dromara/hutool/core/io/unit/DataSizeUtilTest.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/io/unit/DataSize.java b/hutool-core/src/main/java/org/dromara/hutool/core/io/unit/DataSize.java index 358a3d336..edb9d2ba9 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/io/unit/DataSize.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/io/unit/DataSize.java @@ -197,7 +197,7 @@ public final class DataSize implements Comparable { public static DataSize parse(final CharSequence text, final 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/org/dromara/hutool/core/io/unit/DataSizeUtilTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/io/unit/DataSizeUtilTest.java index 4aea1d435..91c64a83d 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/io/unit/DataSizeUtilTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/io/unit/DataSizeUtilTest.java @@ -72,4 +72,11 @@ public class DataSizeUtilTest { format = DataSizeUtil.format(1024L * 1024 * 1024 * 1024); Assertions.assertEquals("1 TB", format); } + + @Test + void issueI88Z4ZTest() { + final String size = DataSizeUtil.format(10240000); + final long bytes = DataSize.parse(size).toBytes(); + Assertions.assertEquals(10244587, bytes); + } }