From b4645daf2a9943afb4603e30eef1897cdca157c5 Mon Sep 17 00:00:00 2001
From: zlyx <1242874891@qq.com>
Date: 星期一, 06 三月 2023 13:07:05 +0800
Subject: [PATCH] add 新增 迁移 4.X EasyExcel枚举类数据翻译注解功能 ; fix 修正 !pr292 相关问题, 回退特殊类转换写法 ;
---
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java | 80 ++++++++++++++++++++++++++++++++--------
1 files changed, 64 insertions(+), 16 deletions(-)
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java
index 15ece20..5b1c8ca 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java
@@ -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;
/**
* 瀛楃涓插伐鍏风被
@@ -19,6 +19,8 @@
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class StringUtils extends org.apache.commons.lang3.StringUtils {
+
+ public static final String SEPARATOR = ",";
/**
* 鑾峰彇鍙傛暟涓嶄负绌哄��
@@ -224,7 +226,6 @@
*
* @param pattern 鍖归厤瑙勫垯
* @param url 闇�瑕佸尮閰嶇殑url
- * @return
*/
public static boolean isMatch(String pattern, String url) {
AntPathMatcher matcher = new AntPathMatcher();
@@ -234,40 +235,87 @@
/**
* 鏁板瓧宸﹁竟琛ラ綈0锛屼娇涔嬭揪鍒版寚瀹氶暱搴︺�傛敞鎰忥紝濡傛灉鏁板瓧杞崲涓哄瓧绗︿覆鍚庯紝闀垮害澶т簬size锛屽垯鍙繚鐣� 鏈�鍚巗ize涓瓧绗︺��
*
- * @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锛屽垯鍙繚鐣欐渶鍚巗ize涓瓧绗︺��
*
- * @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();
if (s.length() <= size) {
- for (int i = size - len; i > 0; i--) {
- sb.append(c);
- }
+ sb.append(String.valueOf(c).repeat(size - len));
sb.append(s);
} else {
return s.substring(len - size, len);
}
} else {
- for (int i = size; i > 0; i--) {
- sb.append(c);
- }
+ sb.append(String.valueOf(c).repeat(Math.max(0, size)));
}
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());
+ }
+
}
--
Gitblit v1.9.3