From db28017ec154131d7baf08283dd9b40fdae91373 Mon Sep 17 00:00:00 2001 From: RuoYi <yzz_ivy@163.com> Date: 星期五, 28 二月 2025 13:04:56 +0800 Subject: [PATCH] 优化代码 --- src/main/java/com/ruoyi/common/utils/StringUtils.java | 129 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 128 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/ruoyi/common/utils/StringUtils.java b/src/main/java/com/ruoyi/common/utils/StringUtils.java index 6765117..920968f 100644 --- a/src/main/java/com/ruoyi/common/utils/StringUtils.java +++ b/src/main/java/com/ruoyi/common/utils/StringUtils.java @@ -23,6 +23,9 @@ /** 涓嬪垝绾� */ private static final char SEPARATOR = '_'; + /** 鏄熷彿 */ + private static final char ASTERISK = '*'; + /** * 鑾峰彇鍙傛暟涓嶄负绌哄�� * @@ -164,6 +167,49 @@ } /** + * 鏇挎崲鎸囧畾瀛楃涓茬殑鎸囧畾鍖洪棿鍐呭瓧绗︿负"*" + * + * @param str 瀛楃涓� + * @param startInclude 寮�濮嬩綅缃紙鍖呭惈锛� + * @param endExclude 缁撴潫浣嶇疆锛堜笉鍖呭惈锛� + * @return 鏇挎崲鍚庣殑瀛楃涓� + */ + public static String hide(CharSequence str, int startInclude, int endExclude) + { + if (isEmpty(str)) + { + return NULLSTR; + } + final int strLength = str.length(); + if (startInclude > strLength) + { + return NULLSTR; + } + if (endExclude > strLength) + { + endExclude = strLength; + } + if (startInclude > endExclude) + { + // 濡傛灉璧峰浣嶇疆澶т簬缁撴潫浣嶇疆锛屼笉鏇挎崲 + return NULLSTR; + } + final char[] chars = new char[strLength]; + for (int i = 0; i < strLength; i++) + { + if (i >= startInclude && i < endExclude) + { + chars[i] = ASTERISK; + } + else + { + chars[i] = str.charAt(i); + } + } + return new String(chars); + } + + /** * 鎴彇瀛楃涓� * * @param str 瀛楃涓� @@ -238,6 +284,56 @@ } return str.substring(start, end); + } + + /** + * 鍦ㄥ瓧绗︿覆涓煡鎵剧涓�涓嚭鐜扮殑 `open` 鍜屾渶鍚庝竴涓嚭鐜扮殑 `close` 涔嬮棿鐨勫瓙瀛楃涓� + * + * @param str 瑕佹埅鍙栫殑瀛楃涓� + * @param open 璧峰瀛楃涓� + * @param close 缁撴潫瀛楃涓� + * @return 鎴彇缁撴灉 + */ + public static String substringBetweenLast(final String str, final String open, final String close) + { + if (isEmpty(str) || isEmpty(open) || isEmpty(close)) + { + return NULLSTR; + } + final int start = str.indexOf(open); + if (start != INDEX_NOT_FOUND) + { + final int end = str.lastIndexOf(close); + if (end != INDEX_NOT_FOUND) + { + return str.substring(start + open.length(), end); + } + } + return NULLSTR; + } + + /** + * 鍒ゆ柇鏄惁涓虹┖锛屽苟涓斾笉鏄┖鐧藉瓧绗� + * + * @param str 瑕佸垽鏂殑value + * @return 缁撴灉 + */ + public static boolean hasText(String str) + { + return (str != null && !str.isEmpty() && containsText(str)); + } + + private static boolean containsText(CharSequence str) + { + int strLen = str.length(); + for (int i = 0; i < strLen; i++) + { + if (!Character.isWhitespace(str.charAt(i))) + { + return true; + } + } + return false; } /** @@ -322,6 +418,32 @@ } return list; + } + + /** + * 鍒ゆ柇缁欏畾鐨刢ollection鍒楄〃涓槸鍚﹀寘鍚暟缁刟rray 鍒ゆ柇缁欏畾鐨勬暟缁刟rray涓槸鍚﹀寘鍚粰瀹氱殑鍏冪礌value + * + * @param collection 缁欏畾鐨勯泦鍚� + * @param array 缁欏畾鐨勬暟缁� + * @return boolean 缁撴灉 + */ + public static boolean containsAny(Collection<String> collection, String... array) + { + if (isEmpty(collection) || isEmpty(array)) + { + return false; + } + else + { + for (String str : array) + { + if (collection.contains(str)) + { + return true; + } + } + return false; + } } /** @@ -455,7 +577,8 @@ } /** - * 椹煎嘲寮忓懡鍚嶆硶 渚嬪锛歶ser_name->userName + * 椹煎嘲寮忓懡鍚嶆硶 + * 渚嬪锛歶ser_name->userName */ public static String toCamelCase(String s) { @@ -463,6 +586,10 @@ { return null; } + if (s.indexOf(SEPARATOR) == -1) + { + return s; + } s = s.toLowerCase(); StringBuilder sb = new StringBuilder(s.length()); boolean upperCase = false; -- Gitblit v1.9.3