From 26fc652d33fb82a75d6ec7771ca50ee414b21723 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期二, 11 一月 2022 16:58:47 +0800 Subject: [PATCH] update 统一代码间隔符 --- ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java | 456 +++++++++++++++++--------------------------------------- 1 files changed, 140 insertions(+), 316 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java index 4ca2bfc..0b1d3f4 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java @@ -1,243 +1,203 @@ package com.ruoyi.common.utils; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Validator; +import cn.hutool.core.map.MapUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; import org.springframework.util.AntPathMatcher; -import com.ruoyi.common.constant.Constants; -import com.ruoyi.common.core.text.StrFormatter; + +import java.util.*; /** * 瀛楃涓插伐鍏风被 - * - * @author ruoyi + * + * @author Lion Li */ -public class StringUtils extends org.apache.commons.lang3.StringUtils -{ - /** 绌哄瓧绗︿覆 */ - private static final String NULLSTR = ""; - - /** 涓嬪垝绾� */ - private static final char SEPARATOR = '_'; +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class StringUtils extends org.apache.commons.lang3.StringUtils { /** * 鑾峰彇鍙傛暟涓嶄负绌哄�� - * + * * @param value defaultValue 瑕佸垽鏂殑value * @return value 杩斿洖鍊� */ - public static <T> T nvl(T value, T defaultValue) - { - return value != null ? value : defaultValue; + public static <T> T nvl(T value, T defaultValue) { + return ObjectUtil.defaultIfNull(value, defaultValue); + } + + /** + * 鑾峰彇鍙傛暟涓嶄负绌哄�� + * + * @param str defaultValue 瑕佸垽鏂殑value + * @return value 杩斿洖鍊� + */ + public static String blankToDefault(String str, String defaultValue) { + return StrUtil.blankToDefault(str, defaultValue); } /** * * 鍒ゆ柇涓�涓狢ollection鏄惁涓虹┖锛� 鍖呭惈List锛孲et锛孮ueue - * + * * @param coll 瑕佸垽鏂殑Collection * @return true锛氫负绌� false锛氶潪绌� */ - public static boolean isEmpty(Collection<?> coll) - { - return isNull(coll) || coll.isEmpty(); + public static boolean isEmpty(Collection<?> coll) { + return CollUtil.isEmpty(coll); } /** * * 鍒ゆ柇涓�涓狢ollection鏄惁闈炵┖锛屽寘鍚獿ist锛孲et锛孮ueue - * + * * @param coll 瑕佸垽鏂殑Collection * @return true锛氶潪绌� false锛氱┖ */ - public static boolean isNotEmpty(Collection<?> coll) - { + public static boolean isNotEmpty(Collection<?> coll) { return !isEmpty(coll); } /** * * 鍒ゆ柇涓�涓璞℃暟缁勬槸鍚︿负绌� - * + * * @param objects 瑕佸垽鏂殑瀵硅薄鏁扮粍 - ** @return true锛氫负绌� false锛氶潪绌� + * * @return true锛氫负绌� false锛氶潪绌� */ - public static boolean isEmpty(Object[] objects) - { - return isNull(objects) || (objects.length == 0); + public static boolean isEmpty(Object[] objects) { + return ArrayUtil.isEmpty(objects); } /** * * 鍒ゆ柇涓�涓璞℃暟缁勬槸鍚﹂潪绌� - * + * * @param objects 瑕佸垽鏂殑瀵硅薄鏁扮粍 * @return true锛氶潪绌� false锛氱┖ */ - public static boolean isNotEmpty(Object[] objects) - { + public static boolean isNotEmpty(Object[] objects) { return !isEmpty(objects); } /** - * * 鍒ゆ柇涓�涓狹ap鏄惁涓虹┖ - * - * @param map 瑕佸垽鏂殑Map - * @return true锛氫负绌� false锛氶潪绌� + * * 鍒ゆ柇涓�涓璞℃槸鍚︿负绌� + * + * @param object 瑕佸垽鏂殑瀵硅薄鏁扮粍 + * * @return true锛氫负绌� false锛氶潪绌� */ - public static boolean isEmpty(Map<?, ?> map) - { - return isNull(map) || map.isEmpty(); + public static boolean isEmpty(Object object) { + return ObjectUtil.isEmpty(object); + } + + /** + * * 鍒ゆ柇涓�涓璞℃槸鍚﹂潪绌� + * + * @param object 瑕佸垽鏂殑瀵硅薄鏁扮粍 + * @return true锛氶潪绌� false锛氱┖ + */ + public static boolean isNotEmpty(Object object) { + return !isEmpty(object); } /** * * 鍒ゆ柇涓�涓狹ap鏄惁涓虹┖ - * + * + * @param map 瑕佸垽鏂殑Map + * @return true锛氫负绌� false锛氶潪绌� + */ + public static boolean isEmpty(Map<?, ?> map) { + return MapUtil.isEmpty(map); + } + + /** + * * 鍒ゆ柇涓�涓狹ap鏄惁涓虹┖ + * * @param map 瑕佸垽鏂殑Map * @return true锛氶潪绌� false锛氱┖ */ - public static boolean isNotEmpty(Map<?, ?> map) - { + public static boolean isNotEmpty(Map<?, ?> map) { return !isEmpty(map); } /** * * 鍒ゆ柇涓�涓瓧绗︿覆鏄惁涓虹┖涓� - * + * * @param str String * @return true锛氫负绌� false锛氶潪绌� */ - public static boolean isEmpty(String str) - { - return isNull(str) || NULLSTR.equals(str.trim()); + public static boolean isEmpty(String str) { + return StrUtil.isEmpty(str); } /** * * 鍒ゆ柇涓�涓瓧绗︿覆鏄惁涓洪潪绌轰覆 - * + * * @param str String * @return true锛氶潪绌轰覆 false锛氱┖涓� */ - public static boolean isNotEmpty(String str) - { + public static boolean isNotEmpty(String str) { return !isEmpty(str); } /** * * 鍒ゆ柇涓�涓璞℃槸鍚︿负绌� - * + * * @param object Object * @return true锛氫负绌� false锛氶潪绌� */ - public static boolean isNull(Object object) - { - return object == null; + public static boolean isNull(Object object) { + return ObjectUtil.isNull(object); } /** * * 鍒ゆ柇涓�涓璞℃槸鍚﹂潪绌� - * + * * @param object Object * @return true锛氶潪绌� false锛氱┖ */ - public static boolean isNotNull(Object object) - { + public static boolean isNotNull(Object object) { return !isNull(object); } /** * * 鍒ゆ柇涓�涓璞℃槸鍚︽槸鏁扮粍绫诲瀷锛圝ava鍩烘湰鍨嬪埆鐨勬暟缁勶級 - * + * * @param object 瀵硅薄 * @return true锛氭槸鏁扮粍 false锛氫笉鏄暟缁� */ - public static boolean isArray(Object object) - { - return isNotNull(object) && object.getClass().isArray(); + public static boolean isArray(Object object) { + return ArrayUtil.isArray(object); } /** * 鍘荤┖鏍� */ - public static String trim(String str) - { - return (str == null ? "" : str.trim()); + public static String trim(String str) { + return StrUtil.trim(str); } /** * 鎴彇瀛楃涓� - * - * @param str 瀛楃涓� + * + * @param str 瀛楃涓� * @param start 寮�濮� * @return 缁撴灉 */ - public static String substring(final String str, int start) - { - if (str == null) - { - return NULLSTR; - } - - if (start < 0) - { - start = str.length() + start; - } - - if (start < 0) - { - start = 0; - } - if (start > str.length()) - { - return NULLSTR; - } - - return str.substring(start); + public static String substring(final String str, int start) { + return substring(str, start, str.length()); } /** * 鎴彇瀛楃涓� - * - * @param str 瀛楃涓� + * + * @param str 瀛楃涓� * @param start 寮�濮� - * @param end 缁撴潫 + * @param end 缁撴潫 * @return 缁撴灉 */ - public static String substring(final String str, int start, int end) - { - if (str == null) - { - return NULLSTR; - } - - if (end < 0) - { - end = str.length() + end; - } - if (start < 0) - { - start = str.length() + start; - } - - if (end > str.length()) - { - end = str.length(); - } - - if (start > end) - { - return NULLSTR; - } - - if (start < 0) - { - start = 0; - } - if (end < 0) - { - end = 0; - } - - return str.substring(start, end); + public static String substring(final String str, int start, int end) { + return StrUtil.sub(str, start, end); } /** @@ -248,75 +208,62 @@ * 閫氬父浣跨敤锛歠ormat("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 \a for b<br> - * + * * @param template 鏂囨湰妯℃澘锛岃鏇挎崲鐨勯儴鍒嗙敤 {} 琛ㄧず - * @param params 鍙傛暟鍊� + * @param params 鍙傛暟鍊� * @return 鏍煎紡鍖栧悗鐨勬枃鏈� */ - public static String format(String template, Object... params) - { - if (isEmpty(params) || isEmpty(template)) - { - return template; - } - return StrFormatter.format(template, params); + public static String format(String template, Object... params) { + return StrUtil.format(template, params); } /** * 鏄惁涓篽ttp(s)://寮�澶� - * + * * @param link 閾炬帴 * @return 缁撴灉 */ - public static boolean ishttp(String link) - { - return StringUtils.startsWithAny(link, Constants.HTTP, Constants.HTTPS); + public static boolean ishttp(String link) { + return Validator.isUrl(link); } /** * 瀛楃涓茶浆set - * + * * @param str 瀛楃涓� * @param sep 鍒嗛殧绗� * @return set闆嗗悎 */ - public static final Set<String> str2Set(String str, String sep) - { - return new HashSet<String>(str2List(str, sep, true, false)); + public static Set<String> str2Set(String str, String sep) { + return new HashSet<>(str2List(str, sep, true, false)); } /** * 瀛楃涓茶浆list - * - * @param str 瀛楃涓� - * @param sep 鍒嗛殧绗� + * + * @param str 瀛楃涓� + * @param sep 鍒嗛殧绗� * @param filterBlank 杩囨护绾┖鐧� - * @param trim 鍘绘帀棣栧熬绌虹櫧 + * @param trim 鍘绘帀棣栧熬绌虹櫧 * @return list闆嗗悎 */ - public static final List<String> str2List(String str, String sep, boolean filterBlank, boolean trim) - { - List<String> list = new ArrayList<String>(); - if (StringUtils.isEmpty(str)) - { + public static List<String> str2List(String str, String sep, boolean filterBlank, boolean trim) { + List<String> list = new ArrayList<>(); + if (isEmpty(str)) { return list; } // 杩囨护绌虹櫧瀛楃涓� - if (filterBlank && StringUtils.isBlank(str)) - { + if (filterBlank && isBlank(str)) { return list; } String[] split = str.split(sep); - for (String string : split) - { - if (filterBlank && StringUtils.isBlank(string)) - { + for (String string : split) { + if (filterBlank && isBlank(string)) { continue; } - if (trim) - { - string = string.trim(); + if (trim) { + string = trim(string); } list.add(string); } @@ -327,183 +274,62 @@ /** * 鏌ユ壘鎸囧畾瀛楃涓叉槸鍚﹀寘鍚寚瀹氬瓧绗︿覆鍒楄〃涓殑浠绘剰涓�涓瓧绗︿覆鍚屾椂涓插拷鐣ュぇ灏忓啓 * - * @param cs 鎸囧畾瀛楃涓� + * @param cs 鎸囧畾瀛楃涓� * @param searchCharSequences 闇�瑕佹鏌ョ殑瀛楃涓叉暟缁� * @return 鏄惁鍖呭惈浠绘剰涓�涓瓧绗︿覆 */ - public static boolean containsAnyIgnoreCase(CharSequence cs, CharSequence... searchCharSequences) - { - if (isEmpty(cs) || isEmpty(searchCharSequences)) - { - return false; - } - for (CharSequence testStr : searchCharSequences) - { - if (containsIgnoreCase(cs, testStr)) - { - return true; - } - } - return false; + public static boolean containsAnyIgnoreCase(CharSequence cs, CharSequence... searchCharSequences) { + return StrUtil.containsAnyIgnoreCase(cs, searchCharSequences); } /** * 椹煎嘲杞笅鍒掔嚎鍛藉悕 */ - public static String toUnderScoreCase(String str) - { - if (str == null) - { - return null; - } - StringBuilder sb = new StringBuilder(); - // 鍓嶇疆瀛楃鏄惁澶у啓 - boolean preCharIsUpperCase = true; - // 褰撳墠瀛楃鏄惁澶у啓 - boolean curreCharIsUpperCase = true; - // 涓嬩竴瀛楃鏄惁澶у啓 - boolean nexteCharIsUpperCase = true; - for (int i = 0; i < str.length(); i++) - { - char c = str.charAt(i); - if (i > 0) - { - preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1)); - } - else - { - preCharIsUpperCase = false; - } - - curreCharIsUpperCase = Character.isUpperCase(c); - - if (i < (str.length() - 1)) - { - nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1)); - } - - if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) - { - sb.append(SEPARATOR); - } - else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) - { - sb.append(SEPARATOR); - } - sb.append(Character.toLowerCase(c)); - } - - return sb.toString(); + public static String toUnderScoreCase(String str) { + return StrUtil.toUnderlineCase(str); } /** * 鏄惁鍖呭惈瀛楃涓� - * - * @param str 楠岃瘉瀛楃涓� + * + * @param str 楠岃瘉瀛楃涓� * @param strs 瀛楃涓茬粍 * @return 鍖呭惈杩斿洖true */ - public static boolean inStringIgnoreCase(String str, String... strs) - { - if (str != null && strs != null) - { - for (String s : strs) - { - if (str.equalsIgnoreCase(trim(s))) - { - return true; - } - } - } - return false; + public static boolean inStringIgnoreCase(String str, String... strs) { + return StrUtil.equalsAnyIgnoreCase(str, strs); } /** * 灏嗕笅鍒掔嚎澶у啓鏂瑰紡鍛藉悕鐨勫瓧绗︿覆杞崲涓洪┘宄板紡銆傚鏋滆浆鎹㈠墠鐨勪笅鍒掔嚎澶у啓鏂瑰紡鍛藉悕鐨勫瓧绗︿覆涓虹┖锛屽垯杩斿洖绌哄瓧绗︿覆銆� 渚嬪锛欻ELLO_WORLD->HelloWorld - * + * * @param name 杞崲鍓嶇殑涓嬪垝绾垮ぇ鍐欐柟寮忓懡鍚嶇殑瀛楃涓� * @return 杞崲鍚庣殑椹煎嘲寮忓懡鍚嶇殑瀛楃涓� */ - public static String convertToCamelCase(String name) - { - StringBuilder result = new StringBuilder(); - // 蹇�熸鏌� - if (name == null || name.isEmpty()) - { - // 娌″繀瑕佽浆鎹� - return ""; - } - else if (!name.contains("_")) - { - // 涓嶅惈涓嬪垝绾匡紝浠呭皢棣栧瓧姣嶅ぇ鍐� - return name.substring(0, 1).toUpperCase() + name.substring(1); - } - // 鐢ㄤ笅鍒掔嚎灏嗗師濮嬪瓧绗︿覆鍒嗗壊 - String[] camels = name.split("_"); - for (String camel : camels) - { - // 璺宠繃鍘熷瀛楃涓蹭腑寮�澶淬�佺粨灏剧殑涓嬫崲绾挎垨鍙岄噸涓嬪垝绾� - if (camel.isEmpty()) - { - continue; - } - // 棣栧瓧姣嶅ぇ鍐� - result.append(camel.substring(0, 1).toUpperCase()); - result.append(camel.substring(1).toLowerCase()); - } - return result.toString(); + public static String convertToCamelCase(String name) { + return StrUtil.upperFirst(StrUtil.toCamelCase(name)); } /** * 椹煎嘲寮忓懡鍚嶆硶 渚嬪锛歶ser_name->userName */ - public static String toCamelCase(String s) - { - if (s == null) - { - return null; - } - s = s.toLowerCase(); - StringBuilder sb = new StringBuilder(s.length()); - boolean upperCase = false; - for (int i = 0; i < s.length(); i++) - { - char c = s.charAt(i); - - if (c == SEPARATOR) - { - upperCase = true; - } - else if (upperCase) - { - sb.append(Character.toUpperCase(c)); - upperCase = false; - } - else - { - sb.append(c); - } - } - return sb.toString(); + public static String toCamelCase(String s) { + return StrUtil.toCamelCase(s); } /** * 鏌ユ壘鎸囧畾瀛楃涓叉槸鍚﹀尮閰嶆寚瀹氬瓧绗︿覆鍒楄〃涓殑浠绘剰涓�涓瓧绗︿覆 - * - * @param str 鎸囧畾瀛楃涓� + * + * @param str 鎸囧畾瀛楃涓� * @param strs 闇�瑕佹鏌ョ殑瀛楃涓叉暟缁� * @return 鏄惁鍖归厤 */ - public static boolean matches(String str, List<String> strs) - { - if (isEmpty(str) || isEmpty(strs)) - { + public static boolean matches(String str, List<String> strs) { + if (isEmpty(str) || isEmpty(strs)) { return false; } - for (String pattern : strs) - { - if (isMatch(pattern, str)) - { + for (String pattern : strs) { + if (isMatch(pattern, str)) { return true; } } @@ -511,24 +337,22 @@ } /** - * 鍒ゆ柇url鏄惁涓庤鍒欓厤缃�: - * ? 琛ㄧず鍗曚釜瀛楃; - * * 琛ㄧず涓�灞傝矾寰勫唴鐨勪换鎰忓瓧绗︿覆锛屼笉鍙法灞傜骇; + * 鍒ゆ柇url鏄惁涓庤鍒欓厤缃�: + * ? 琛ㄧず鍗曚釜瀛楃; + * * 琛ㄧず涓�灞傝矾寰勫唴鐨勪换鎰忓瓧绗︿覆锛屼笉鍙法灞傜骇; * ** 琛ㄧず浠绘剰灞傝矾寰�; - * + * * @param pattern 鍖归厤瑙勫垯 - * @param url 闇�瑕佸尮閰嶇殑url + * @param url 闇�瑕佸尮閰嶇殑url * @return */ - public static boolean isMatch(String pattern, String url) - { + public static boolean isMatch(String pattern, String url) { AntPathMatcher matcher = new AntPathMatcher(); return matcher.match(pattern, url); } @SuppressWarnings("unchecked") - public static <T> T cast(Object obj) - { + public static <T> T cast(Object obj) { return (T) obj; } -} \ No newline at end of file +} -- Gitblit v1.9.3