From 42b66729710967b8715b9f3c6d6ceed6029b385c Mon Sep 17 00:00:00 2001 From: duandazhi Date: Tue, 27 Sep 2022 09:37:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=B1=BB=EF=BC=9AsubStr=E5=A2=9E=E5=8A=A0=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B=E3=80=81=E4=BB=A3=E7=A0=81=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hutool/core/text/CharSequenceUtil.java | 9 +++++++++ .../src/test/java/cn/hutool/core/text/StrUtilTest.java | 10 ++++++++++ 2 files changed, 19 insertions(+) diff --git a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java index ffd27977f..e217b9f09 100755 --- a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java @@ -1741,6 +1741,15 @@ public class CharSequenceUtil extends StrChecker { /** * 切割指定位置之前部分的字符串 + *

安全的subString,允许:string为null,允许string长度小于toIndexExclude长度

+ *
+	 *      Assert.assertEquals(StrUtil.subPre(null, 3), null);
+	 * 		Assert.assertEquals(StrUtil.subPre("ab", 3), "ab");
+	 * 		Assert.assertEquals(StrUtil.subPre("abc", 3), "abc");
+	 * 		Assert.assertEquals(StrUtil.subPre("abcd", 3), "abc");
+	 * 		Assert.assertEquals(StrUtil.subPre("abcd", -3), "a");
+	 * 		Assert.assertEquals(StrUtil.subPre("ab", 3), "ab");
+	 * 
* * @param string 字符串 * @param toIndexExclude 切割到的位置(不包括) diff --git a/hutool-core/src/test/java/cn/hutool/core/text/StrUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/text/StrUtilTest.java index 0e868f6ce..7f380e5b7 100644 --- a/hutool-core/src/test/java/cn/hutool/core/text/StrUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/text/StrUtilTest.java @@ -280,6 +280,16 @@ public class StrUtilTest { Assert.assertEquals("ghigh", pre); } + @Test + public void subPreTest() { + Assert.assertEquals(StrUtil.subPre(null, 3), null); + Assert.assertEquals(StrUtil.subPre("ab", 3), "ab"); + Assert.assertEquals(StrUtil.subPre("abc", 3), "abc"); + Assert.assertEquals(StrUtil.subPre("abcd", 3), "abc"); + Assert.assertEquals(StrUtil.subPre("abcd", -3), "a"); + Assert.assertEquals(StrUtil.subPre("ab", 3), "ab"); + } + @Test public void subByCodePointTest() { // 🤔👍🍓🤔