From 32c7dd0c6b02d3ab8399c361cf12c4204bf4511b Mon Sep 17 00:00:00 2001 From: emptypoint <1215582715@qq.com> Date: Sun, 12 Mar 2023 20:52:27 +0800 Subject: [PATCH] 1.fix doc; 2.update code; --- .../hutool/core/text/finder/CharFinder.java | 6 +- .../hutool/core/text/finder/LengthFinder.java | 2 +- .../core/text/finder/PatternFinder.java | 4 +- .../cn/hutool/core/text/split/SplitIter.java | 2 +- .../cn/hutool/core/text/split/SplitUtil.java | 68 ++++++++++--------- 5 files changed, 44 insertions(+), 38 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/text/finder/CharFinder.java b/hutool-core/src/main/java/cn/hutool/core/text/finder/CharFinder.java index 61029fdb0..5eece80c0 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/finder/CharFinder.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/finder/CharFinder.java @@ -1,7 +1,7 @@ package cn.hutool.core.text.finder; import cn.hutool.core.lang.Assert; -import cn.hutool.core.math.NumberUtil; +import cn.hutool.core.util.CharUtil; /** * 字符查找器
@@ -42,13 +42,13 @@ public class CharFinder extends TextFinder { final int limit = getValidEndIndex(); if(negative){ for (int i = from; i > limit; i--) { - if (NumberUtil.equals(c, text.charAt(i), caseInsensitive)) { + if (CharUtil.equals(c, text.charAt(i), caseInsensitive)) { return i; } } } else{ for (int i = from; i < limit; i++) { - if (NumberUtil.equals(c, text.charAt(i), caseInsensitive)) { + if (CharUtil.equals(c, text.charAt(i), caseInsensitive)) { return i; } } diff --git a/hutool-core/src/main/java/cn/hutool/core/text/finder/LengthFinder.java b/hutool-core/src/main/java/cn/hutool/core/text/finder/LengthFinder.java index be20641b1..40f1e855f 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/finder/LengthFinder.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/finder/LengthFinder.java @@ -16,7 +16,7 @@ public class LengthFinder extends TextFinder { /** * 构造 - * @param length 长度 + * @param length 长度,必须大于0 */ public LengthFinder(final int length) { Assert.isTrue(length > 0, "Length must be great than 0"); diff --git a/hutool-core/src/main/java/cn/hutool/core/text/finder/PatternFinder.java b/hutool-core/src/main/java/cn/hutool/core/text/finder/PatternFinder.java index 6de946500..209058b6a 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/finder/PatternFinder.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/finder/PatternFinder.java @@ -1,5 +1,7 @@ package cn.hutool.core.text.finder; +import cn.hutool.core.regex.PatternPool; + import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -23,7 +25,7 @@ public class PatternFinder extends TextFinder { * @param caseInsensitive 是否忽略大小写 */ public PatternFinder(final String regex, final boolean caseInsensitive) { - this(Pattern.compile(regex, caseInsensitive ? Pattern.CASE_INSENSITIVE : 0)); + this(PatternPool.get(regex, caseInsensitive ? Pattern.CASE_INSENSITIVE : 0)); } /** diff --git a/hutool-core/src/main/java/cn/hutool/core/text/split/SplitIter.java b/hutool-core/src/main/java/cn/hutool/core/text/split/SplitIter.java index b82bb0336..2c36dd4c4 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/split/SplitIter.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/split/SplitIter.java @@ -125,7 +125,7 @@ public class SplitIter extends ComputeIter implements Serializable { * @return 切分后的列表 */ public List toList(final boolean trim) { - return toList((str) -> trim ? StrUtil.trim(str) : str); + return toList(trim ? StrUtil::trim : Function.identity()); } /** diff --git a/hutool-core/src/main/java/cn/hutool/core/text/split/SplitUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/split/SplitUtil.java index 6a16f86de..e6505b214 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/split/SplitUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/split/SplitUtil.java @@ -25,6 +25,7 @@ public class SplitUtil { /** * 切分字符串路径,仅支持Unix分界符:/ + *

去除每个元素两边空格,大小写敏感,忽略空串

* * @param str 被切分的字符串 * @return 切分后的集合 @@ -36,6 +37,7 @@ public class SplitUtil { /** * 切分字符串路径,仅支持Unix分界符:/ + *

去除每个元素两边空格,大小写敏感,忽略空串

* * @param str 被切分的字符串 * @return 切分后的集合 @@ -47,9 +49,10 @@ public class SplitUtil { /** * 切分字符串路径,仅支持Unix分界符:/ + *

去除每个元素两边空格,大小写敏感,忽略空串

* * @param str 被切分的字符串 - * @param limit 限制分片数 + * @param limit 限制分片数,小于等于0表示无限制 * @return 切分后的集合 * @since 3.0.8 */ @@ -59,9 +62,10 @@ public class SplitUtil { /** * 切分字符串路径,仅支持Unix分界符:/ + *

去除每个元素两边空格,大小写敏感,忽略空串

* * @param str 被切分的字符串 - * @param limit 限制分片数 + * @param limit 限制分片数,小于等于0表示无限制 * @return 切分后的集合 * @since 3.0.8 */ @@ -70,7 +74,7 @@ public class SplitUtil { } /** - * 切分字符串 + * 切分字符串,大小写敏感,去除每个元素两边空白符 * * @param str 被切分的字符串 * @param separator 分隔符字符 @@ -101,7 +105,7 @@ public class SplitUtil { * * @param str 被切分的字符串 * @param separator 分隔符字符 - * @param limit 限制分片数,-1不限制 + * @param limit 限制分片数,小于等于0表示无限制 * @param ignoreEmpty 是否忽略空串 * @return 切分后的集合 * @since 3.0.8 @@ -115,7 +119,7 @@ public class SplitUtil { * * @param str 被切分的字符串 * @param separator 分隔符字符 - * @param limit 限制分片数,-1不限制 + * @param limit 限制分片数,小于等于0表示无限制 * @param isTrim 是否去除切分字符串后每个元素两边的空格 * @param ignoreEmpty 是否忽略空串 * @return 切分后的集合 @@ -131,7 +135,7 @@ public class SplitUtil { * @param 切分后的元素类型 * @param str 被切分的字符串 * @param separator 分隔符字符 - * @param limit 限制分片数,-1不限制 + * @param limit 限制分片数,小于等于0表示无限制 * @param ignoreEmpty 是否忽略空串 * @param mapping 切分后的字符串元素的转换方法 * @return 切分后的集合,元素类型是经过 mapping 转换后的 @@ -146,7 +150,7 @@ public class SplitUtil { * * @param text 被切分的字符串 * @param separator 分隔符字符 - * @param limit 限制分片数,-1不限制 + * @param limit 限制分片数,小于等于0表示无限制 * @param isTrim 是否去除切分字符串后每个元素两边的空格 * @param ignoreEmpty 是否忽略空串 * @return 切分后的集合 @@ -161,7 +165,7 @@ public class SplitUtil { * * @param text 被切分的字符串 * @param separator 分隔符字符 - * @param limit 限制分片数,-1不限制 + * @param limit 限制分片数,小于等于0表示无限制 * @param isTrim 是否去除切分字符串后每个元素两边的空格 * @param ignoreEmpty 是否忽略空串 * @param ignoreCase 是否忽略大小写 @@ -178,7 +182,7 @@ public class SplitUtil { * @param 切分后的元素类型 * @param text 被切分的字符串 * @param separator 分隔符字符 - * @param limit 限制分片数,-1不限制 + * @param limit 限制分片数,小于等于0表示无限制 * @param ignoreEmpty 是否忽略空串 * @param ignoreCase 是否忽略大小写 * @param mapping 切分后的字符串元素的转换方法 @@ -187,7 +191,7 @@ public class SplitUtil { */ public static List split(final CharSequence text, final char separator, final int limit, final boolean ignoreEmpty, final boolean ignoreCase, final Function mapping) { - if (null == text) { + if (StrUtil.isEmpty(text)) { return new ArrayList<>(0); } final SplitIter splitIter = new SplitIter(text, new CharFinder(separator, ignoreCase), limit, ignoreEmpty); @@ -199,7 +203,7 @@ public class SplitUtil { * * @param str 被切分的字符串 * @param separator 分隔符字符 - * @param limit 限制分片数 + * @param limit 限制分片数,小于等于0表示无限制 * @param isTrim 是否去除切分字符串后每个元素两边的空格 * @param ignoreEmpty 是否忽略空串 * @return 切分后的集合 @@ -226,7 +230,7 @@ public class SplitUtil { } /** - * 切分字符串,去除每个元素两边空格,忽略大小写 + * 切分字符串,去除每个元素两边空格,不忽略大小写 * * @param str 被切分的字符串 * @param separator 分隔符字符串 @@ -254,11 +258,11 @@ public class SplitUtil { } /** - * 切分字符串,去除每个元素两边空格,忽略大小写 + * 切分字符串,去除每个元素两边空格,不忽略大小写 * * @param str 被切分的字符串 * @param separator 分隔符字符串 - * @param limit 限制分片数 + * @param limit 限制分片数,小于等于0表示无限制 * @param ignoreEmpty 是否忽略空串 * @return 切分后的集合 * @since 3.2.1 @@ -272,7 +276,7 @@ public class SplitUtil { * * @param str 被切分的字符串 * @param separator 分隔符字符串 - * @param limit 限制分片数 + * @param limit 限制分片数,小于等于0表示无限制 * @param isTrim 是否去除切分字符串后每个元素两边的空格 * @param ignoreEmpty 是否忽略空串 * @return 切分后的集合 @@ -287,7 +291,7 @@ public class SplitUtil { * * @param str 被切分的字符串 * @param separator 分隔符字符串 - * @param limit 限制分片数 + * @param limit 限制分片数,小于等于0表示无限制 * @param ignoreEmpty 是否忽略空串 * @return 切分后的集合 * @since 3.2.1 @@ -310,7 +314,7 @@ public class SplitUtil { * @since 3.2.1 */ public static List split(final CharSequence text, final String separator, final int limit, final boolean isTrim, final boolean ignoreEmpty, final boolean ignoreCase) { - if (null == text) { + if (StrUtil.isEmpty(text)) { return new ArrayList<>(0); } final SplitIter splitIter = new SplitIter(text, new StrFinder(separator, ignoreCase), limit, ignoreEmpty); @@ -340,12 +344,12 @@ public class SplitUtil { * 如果为空字符串或者null 则返回空集合 * * @param text 被切分的字符串 - * @param limit 限制分片数 + * @param limit 限制分片数,小于等于0表示无限制 * @return 切分后的集合 * @since 3.0.8 */ public static List split(final CharSequence text, final int limit) { - if (null == text) { + if (StrUtil.isBlank(text)) { return new ArrayList<>(0); } final SplitIter splitIter = new SplitIter(text, new CharMatcherFinder(CharUtil::isBlankChar), limit, true); @@ -356,11 +360,11 @@ public class SplitUtil { * 切分字符串为字符串数组 * * @param str 被切分的字符串 - * @param limit 限制分片数 + * @param limit 限制分片数,小于等于0表示无限制 * @return 切分后的集合 * @since 3.0.8 */ - public static String[] splitToArray(final String str, final int limit) { + public static String[] splitToArray(final CharSequence str, final int limit) { return toArray(split(str, limit)); } //---------------------------------------------------------------------------------------------- Split by regex @@ -370,13 +374,13 @@ public class SplitUtil { * * @param text 字符串 * @param separatorRegex 分隔符正则 - * @param limit 限制分片数 + * @param limit 限制分片数,小于等于0表示无限制 * @param isTrim 是否去除切分字符串后每个元素两边的空格 * @param ignoreEmpty 是否忽略空串 * @return 切分后的集合 * @since 3.0.8 */ - public static List splitByRegex(final String text, final String separatorRegex, final int limit, final boolean isTrim, final boolean ignoreEmpty) { + public static List splitByRegex(final CharSequence text, final String separatorRegex, final int limit, final boolean isTrim, final boolean ignoreEmpty) { final Pattern pattern = PatternPool.get(separatorRegex); return split(text, pattern, limit, isTrim, ignoreEmpty); } @@ -387,14 +391,14 @@ public class SplitUtil { * * @param text 字符串 * @param separatorPattern 分隔符正则{@link Pattern} - * @param limit 限制分片数 + * @param limit 限制分片数,小于等于0表示无限制 * @param isTrim 是否去除切分字符串后每个元素两边的空格 * @param ignoreEmpty 是否忽略空串 * @return 切分后的集合 * @since 3.0.8 */ - public static List split(final String text, final Pattern separatorPattern, final int limit, final boolean isTrim, final boolean ignoreEmpty) { - if (null == text) { + public static List split(final CharSequence text, final Pattern separatorPattern, final int limit, final boolean isTrim, final boolean ignoreEmpty) { + if (StrUtil.isEmpty(text)) { return new ArrayList<>(0); } final SplitIter splitIter = new SplitIter(text, new PatternFinder(separatorPattern), limit, ignoreEmpty); @@ -406,13 +410,13 @@ public class SplitUtil { * * @param str 被切分的字符串 * @param separatorPattern 分隔符正则{@link Pattern} - * @param limit 限制分片数 + * @param limit 限制分片数,小于等于0表示无限制 * @param isTrim 是否去除切分字符串后每个元素两边的空格 * @param ignoreEmpty 是否忽略空串 * @return 切分后的集合 * @since 3.0.8 */ - public static String[] splitToArray(final String str, final Pattern separatorPattern, final int limit, final boolean isTrim, final boolean ignoreEmpty) { + public static String[] splitToArray(final CharSequence str, final Pattern separatorPattern, final int limit, final boolean isTrim, final boolean ignoreEmpty) { return toArray(split(str, separatorPattern, limit, isTrim, ignoreEmpty)); } //---------------------------------------------------------------------------------------------- Split by length @@ -421,11 +425,11 @@ public class SplitUtil { * 根据给定长度,将给定字符串截取为多个部分 * * @param text 字符串 - * @param len 每一个小节的长度 + * @param len 每一个小节的长度,必须大于0 * @return 截取后的字符串数组 */ public static String[] splitByLength(final CharSequence text, final int len) { - if (null == text) { + if (StrUtil.isEmpty(text)) { return new String[0]; } final SplitIter splitIter = new SplitIter(text, new LengthFinder(len), -1, false); @@ -449,8 +453,8 @@ public class SplitUtil { * @param isTrim 是否trim * @return {@link Function} */ - private static Function trimFunc(final boolean isTrim) { - return (str) -> isTrim ? StrUtil.trim(str) : str; + public static Function trimFunc(final boolean isTrim) { + return isTrim ? StrUtil::trim : Function.identity(); } //---------------------------------------------------------------------------------------------------------- Private method end }