|
@@ -1,16 +1,16 @@
|
|
|
package com.ruoyi.common.utils;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.convert.Convert;
|
|
|
import cn.hutool.core.lang.Validator;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import lombok.AccessLevel;
|
|
|
import lombok.NoArgsConstructor;
|
|
|
import org.springframework.util.AntPathMatcher;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 字符串工具类
|
|
@@ -20,6 +20,8 @@ import java.util.Set;
|
|
|
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
|
|
public class StringUtils extends org.apache.commons.lang3.StringUtils {
|
|
|
|
|
|
+ public static final String SEPARATOR = ",";
|
|
|
+
|
|
|
/**
|
|
|
* 获取参数不为空值
|
|
|
*
|
|
@@ -224,7 +226,6 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
|
|
|
*
|
|
|
* @param pattern 匹配规则
|
|
|
* @param url 需要匹配的url
|
|
|
- * @return
|
|
|
*/
|
|
|
public static boolean isMatch(String pattern, String url) {
|
|
|
AntPathMatcher matcher = new AntPathMatcher();
|
|
@@ -234,23 +235,23 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
|
|
|
/**
|
|
|
* 数字左边补齐0,使之达到指定长度。注意,如果数字转换为字符串后,长度大于size,则只保留 最后size个字符。
|
|
|
*
|
|
|
- * @param num 数字对象
|
|
|
+ * @param num 数字对象
|
|
|
* @param size 字符串指定长度
|
|
|
* @return 返回数字的字符串格式,该字符串为指定长度。
|
|
|
*/
|
|
|
- public static final String padl(final Number num, final int size) {
|
|
|
+ public static String padl(final Number num, final int size) {
|
|
|
return padl(num.toString(), size, '0');
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 字符串左补齐。如果原始字符串s长度大于size,则只保留最后size个字符。
|
|
|
*
|
|
|
- * @param s 原始字符串
|
|
|
+ * @param s 原始字符串
|
|
|
* @param size 字符串指定长度
|
|
|
- * @param c 用于补齐的字符
|
|
|
+ * @param c 用于补齐的字符
|
|
|
* @return 返回指定长度的字符串,由原字符串左补齐或截取得到。
|
|
|
*/
|
|
|
- public static final String padl(final String s, final int size, final char c) {
|
|
|
+ public static String padl(final String s, final int size, final char c) {
|
|
|
final StringBuilder sb = new StringBuilder(size);
|
|
|
if (s != null) {
|
|
|
final int len = s.length();
|
|
@@ -270,4 +271,55 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
|
|
|
return sb.toString();
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 切分字符串(分隔符默认逗号)
|
|
|
+ *
|
|
|
+ * @param str 被切分的字符串
|
|
|
+ * @return 分割后的数据列表
|
|
|
+ */
|
|
|
+ public static List<String> splitList(String str) {
|
|
|
+ return splitTo(str, Convert::toStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 切分字符串
|
|
|
+ *
|
|
|
+ * @param str 被切分的字符串
|
|
|
+ * @param separator 分隔符
|
|
|
+ * @return 分割后的数据列表
|
|
|
+ */
|
|
|
+ public static List<String> splitList(String str, String separator) {
|
|
|
+ return splitTo(str, separator, Convert::toStr);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 切分字符串自定义转换(分隔符默认逗号)
|
|
|
+ *
|
|
|
+ * @param str 被切分的字符串
|
|
|
+ * @param mapper 自定义转换
|
|
|
+ * @return 分割后的数据列表
|
|
|
+ */
|
|
|
+ public static <T> List<T> splitTo(String str, Function<? super Object, T> mapper) {
|
|
|
+ return splitTo(str, SEPARATOR, mapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 切分字符串自定义转换
|
|
|
+ *
|
|
|
+ * @param str 被切分的字符串
|
|
|
+ * @param separator 分隔符
|
|
|
+ * @param mapper 自定义转换
|
|
|
+ * @return 分割后的数据列表
|
|
|
+ */
|
|
|
+ public static <T> List<T> splitTo(String str, String separator, Function<? super Object, T> mapper) {
|
|
|
+ if (isBlank(str)) {
|
|
|
+ return new ArrayList<>(0);
|
|
|
+ }
|
|
|
+ return StrUtil.split(str, separator)
|
|
|
+ .stream()
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .map(mapper)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
}
|