Looly 5 years ago
parent
commit
1cc66f086e

+ 1 - 1
hutool-core/src/main/java/cn/hutool/core/io/unit/DataSizeUtil.java

@@ -16,7 +16,7 @@ public class DataSizeUtil {
 	 * @param text 数据大小字符串,类似于:12KB, 5MB等
 	 * @return bytes大小
 	 */
-	public long parse(String text) {
+	public static long parse(String text) {
 		return DataSize.parse(text).toBytes();
 	}
 

+ 4 - 1
hutool-core/src/main/java/cn/hutool/core/io/unit/DataUnit.java

@@ -1,5 +1,7 @@
 package cn.hutool.core.io.unit;
 
+import cn.hutool.core.util.StrUtil;
+
 /**
  * 数据单位封装<p>
  * 此类来自于:Spring-framework
@@ -69,7 +71,8 @@ public enum DataUnit {
 	 */
 	public static DataUnit fromSuffix(String suffix) {
 		for (DataUnit candidate : values()) {
-			if (candidate.suffix.equalsIgnoreCase(suffix)) {
+			// 支持类似于 3MB,3M,3m等写法
+			if (StrUtil.startWithIgnoreCase(candidate.suffix, suffix)) {
 				return candidate;
 			}
 		}

+ 22 - 0
hutool-core/src/test/java/cn/hutool/core/io/unit/DataSizeUtilTest.java

@@ -0,0 +1,22 @@
+package cn.hutool.core.io.unit;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class DataSizeUtilTest {
+
+	@Test
+	public void parseTest(){
+		long parse = DataSizeUtil.parse("3M");
+		Assert.assertEquals(3145728, parse);
+
+		parse = DataSizeUtil.parse("3m");
+		Assert.assertEquals(3145728, parse);
+
+		parse = DataSizeUtil.parse("3MB");
+		Assert.assertEquals(3145728, parse);
+
+		parse = DataSizeUtil.parse("3mb");
+		Assert.assertEquals(3145728, parse);
+	}
+}