|
|
|
@ -1,16 +1,16 @@
|
|
|
|
|
package com.ruoyi.common.core.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 = ",";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取参数不为空值
|
|
|
|
|
*
|
|
|
|
@ -86,7 +88,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
|
|
|
|
|
* 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可<br>
|
|
|
|
|
* 例:<br>
|
|
|
|
|
* 通常使用:format("this is {} for {}", "a", "b") -> this is a for b<br>
|
|
|
|
|
* 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a<br>
|
|
|
|
|
* 转义{}: format("this is \\{} for {}", "a", "b") -> this is {} for a<br>
|
|
|
|
|
* 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br>
|
|
|
|
|
*
|
|
|
|
|
* @param template 文本模板,被替换的部分用 {} 表示
|
|
|
|
@ -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();
|
|
|
|
@ -238,7 +239,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
|
|
|
|
|
* @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');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -250,7 +251,7 @@ public class StringUtils extends org.apache.commons.lang3.StringUtils {
|
|
|
|
|
* @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());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|