Class StringTools
- Author:
- luna 2021/8/18
-
Field Summary
Fields inherited from class org.apache.commons.lang3.StringUtils
CR, EMPTY, INDEX_NOT_FOUND, LF, SPACE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic String[]addStringToArray(String[] array, String str) Append the givenStringto the givenStringarray, returning a new array consisting of the input array contents plus the givenString.static StringapplyRelativePath(String path, String relativePath) Apply the given relative path to the given Java resource path, assuming standard Java folder separation (i.e.static StringConvert aStringarray into a comma delimitedString(i.e., CSV).static StringarrayToDelimitedString(Object[] arr, String delim) Convert aStringarray into a delimitedString(e.g.static Stringcapitalize(String str) Capitalize aString, changing the first letter to upper case as perCharacter.toUpperCase(char).static StringcleanBlank(CharSequence str) 清理空白字符static StringNormalize the path by suppressing sequences like "path/.." and inner simple dots.static StringConvert aCollectioninto a delimitedString(e.g., CSV).static StringcollectionToDelimitedString(Collection<?> coll, String delim) Convert aCollectioninto a delimitedString(e.g.static StringcollectionToDelimitedString(Collection<?> coll, String delim, String prefix, String suffix) Convert aCollectionto a delimitedString(e.g.Convert a comma delimited list (e.g., a row from a CSV file) into a set.static String[]将以逗号分隔的列表(例如,CSV文件中的一行)转换为字符串数组。 Convert a comma delimited list (e.g., a row from a CSV file) into an array of strings.static String[]concatenateStringArrays(String[] array1, String[] array2) Concatenate the givenStringarrays into one, with overlapping array elements included twice.static booleanstatic booleancontainsAny(CharSequence str, char... testChars) 查找指定字符串是否包含指定字符列表中的任意一个字符static booleancontainsAny(CharSequence str, CharSequence... testStrs) 查找指定字符串是否包含指定字符串列表中的任意一个字符串static booleanCheck whether the givenCharSequencecontains any whitespace characters.static booleancontainsWhitespace(String str) Check whether the givenStringcontains any whitespace characters.static intcountOccurrencesOf(String str, String sub) Count the occurrences of the substringsubin stringstr.static StringDelete all occurrences of the given substring.static StringDelete any character in a givenString.static String[]delimitedListToStringArray(String str, String delimiter) Take aStringthat is a delimited list and convert it into aStringarray.static String[]delimitedListToStringArray(String str, String delimiter, String charsToDelete) Take aStringthat is a delimited list and convert it into aStringarray.static Stringdesensitized(CharSequence str, DesensitizedUtil.DesensitizedType desensitizedType) 脱敏,使用默认的脱敏策略static booleanendsWithIgnoreCase(String str, String suffix) Test if the givenStringends with the specified suffix, ignoring upper/lower case.static Stringfilter(CharSequence str, Filter<Character> filter) 过滤字符串static Stringformat(CharSequence template, Object... params) 格式化文本, {} 表示占位符
此方法只是简单将占位符 {} 按照顺序替换为参数
如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
例:
通常使用:format("this is {} for {}", "a", "b") =》 this is a for b
转义{}: format("this is \\{} for {}", "a", "b") =》 this is \{} for a
转义\: format("this is \\\\{} for {}", "a", "b") =》 this is \a for bstatic Stringformat(CharSequence template, String start, String end, Map<?, ?> map, boolean ignoreNull) static Stringformat(CharSequence template, String special, Map<?, ?> map, boolean ignoreNull) 格式化文本,使用 'special'{varName} 特殊字符占位
map = {a: "aValue", b: "bValue"} format("${a} and ${b}", map) ---=》 aValue and bValuestatic Stringformat(CharSequence template, Map<?, ?> map) 格式化文本,使用 {varName} 占位
map = {a: "aValue", b: "bValue"} format("{a} and {b}", map) ---=》 aValue and bValuestatic Stringformat(CharSequence template, Map<?, ?> map, boolean ignoreNull) 格式化文本,使用 {varName} 占位
map = {a: "aValue", b: "bValue"} format("{a} and {b}", map) ---=》 aValue and bValuestatic StringgetContainsStr(CharSequence str, CharSequence... testStrs) 查找指定字符串是否包含指定字符串列表中的任意一个字符串,如果包含返回找到的第一个字符串static StringgetFilename(String path) Extract the filename from the given Java resource path, e.g.static StringgetFilenameExtension(String path) Extract the filename extension from the given Java resource path, e.g.static StringReadergetReader(CharSequence str) 获得StringReaderstatic StringWriter获得StringWriterstatic booleanhasLength(CharSequence str) Check that the givenCharSequenceis neithernullnor of length 0.static booleanCheck that the givenStringis neithernullnor of length 0.static booleanhasText(CharSequence str) Check whether the givenCharSequencecontains actual text.static booleanCheck whether the givenStringcontains actual text.static Stringhide(CharSequence str, int startInclude, int endExclude) 替换指定字符串的指定区间内字符为"*" 俗称:脱敏功能,后面其他功能,可以见:DesensitizedUtils(脱敏工具类)static intindexOf(CharSequence str, CharSequence searchStr, int fromIndex, boolean ignoreCase) 指定范围内查找字符串static booleanisAllCharMatch(CharSequence value, Matcher<Character> matcher) 字符串的每一个字符是否都与定义的匹配器匹配static booleanisNumber(CharSequence str) 是否为数字,支持包括:static booleanisSubEquals(CharSequence str1, int start1, CharSequence str2, int start2, int length, boolean ignoreCase) 截取两个字符串的不同部分(长度一致),判断截取的子串是否相同
任意一个字符串为null返回falsestatic String[]mergeStringArrays(String[] array1, String[] array2) Deprecated.static LocaleparseLocale(String localeValue) Parse the givenStringvalue into aLocale, accepting theLocale.toString()format as well as BCP 47 language tags.static LocaleparseLocaleString(String localeString) Parse the givenStringrepresentation into aLocale.static TimeZoneparseTimeZoneString(String timeZoneString) Parse the giventimeZoneStringvalue into aTimeZone.static booleanpathEquals(String path1, String path2) Compare two paths after normalization of them.static StringQuote the givenStringwith single quotes.static ObjectquoteIfString(Object obj) Turn the given Object into aStringwith single quotes if it is aString; keeping the Object as-is else.static String[]removeDuplicateStrings(String[] array) Remove duplicate strings from the given array.static StringremoveSuffix(CharSequence str, CharSequence suffix) 去掉指定后缀static Stringreplace(CharSequence str, int startInclude, int endExclude, char replacedChar) 替换指定字符串的指定区间内字符为固定字符static Stringreplace(CharSequence str, int fromIndex, CharSequence searchStr, CharSequence replacement, boolean ignoreCase) 替换字符串中的指定字符串static Stringreplace(CharSequence str, CharSequence searchStr, CharSequence replacement) 替换字符串中的指定字符串static Stringreplace(CharSequence str, CharSequence searchStr, CharSequence replacement, boolean ignoreCase) 替换字符串中的指定字符串static String替换所有正则匹配的文本,并使用自定义函数决定如何替换static String替换所有正则匹配的文本,并使用自定义函数决定如何替换
replaceFun可以通过Matcher提取出匹配到的内容的不同部分,然后经过重新处理、组装变成新的内容放回原位。static StringReplace all occurrences of a substring within a string with another string.static StringreplaceChars(CharSequence str, char[] chars, CharSequence replacedStr) 替换字符字符数组中所有的字符为replacedStrstatic StringreplaceChars(CharSequence str, String chars, CharSequence replacedStr) 替换字符字符数组中所有的字符为replacedStr
提供的chars为所有需要被替换的字符,例如:"\r\n",则"\r"和"\n"都会被替换,哪怕他们单独存在static StringreplaceIgnoreCase(CharSequence str, CharSequence searchStr, CharSequence replacement) 替换字符串中的指定字符串,忽略大小写static String[]sortStringArray(String[] array) Sort the givenStringarray if necessary.static String[]Split aStringat the first occurrence of the delimiter.static PropertiessplitArrayElementsIntoProperties(String[] array, String delimiter) 取一个字符串数组,并根据给定的定界符分割每个元素。然后,生成一个Properties实例,其中分隔符的左侧提供键,而分隔符的右侧提供值。 Take an array of strings and split each element based on the given delimiter.static PropertiessplitArrayElementsIntoProperties(String[] array, String delimiter, String charsToDelete) 取一个字符串数组,并根据给定的定界符分割每个元素。然后,生成一个Properties实例,其中分隔符的左侧提供键,而分隔符的右侧提供值。 Take an array of strings and split each element based on the given delimiter.static booleanstartsWithIgnoreCase(String str, String prefix) Test if the givenStringstarts with the specified prefix, ignoring upper/lower case.static booleanstartWith(CharSequence str, char c) 字符串是否以给定字符开始static booleanstartWith(CharSequence str, CharSequence prefix) 是否以指定字符串开头static booleanstartWith(CharSequence str, CharSequence prefix, boolean ignoreCase) 是否以指定字符串开头
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回falsestatic booleanstartWith(CharSequence str, CharSequence prefix, boolean ignoreCase, boolean ignoreEquals) 是否以指定字符串开头
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回falsestatic booleanstartWithAny(CharSequence str, CharSequence... prefixes) 给定字符串是否以任何一个字符串开始
给定字符串和数组为空都返回falsestatic booleanstartWithIgnoreCase(CharSequence str, CharSequence prefix) 是否以指定字符串开头,忽略大小写static booleanstartWithIgnoreEquals(CharSequence str, CharSequence prefix) 是否以指定字符串开头,忽略相等字符串的情况static Stringstr(CharSequence cs) CharSequence转为字符串,null安全static StringstripFilenameExtension(String path) Strip the filename extension from the given Java resource path, e.g.static Stringsub(CharSequence str, int fromIndexInclude, int toIndexExclude) 改进JDK subString
index从0开始计算,最后一个字符为-1
如果from和to位置一样,返回 ""
如果from或to为负数,则按照length从后向前数位置,如果绝对值大于字符串长度,则from归到0,to归到length
如果经过修正的index中from大于to,则互换from和to example:
abcdefgh 2 3 =》 c
abcdefgh 2 -3 =》 cdestatic StringsubPre(CharSequence string, int toIndexExclude) 切割指定位置之前部分的字符串static booleansubstringMatch(CharSequence str, int index, CharSequence substring) Test whether the given string matches the given substring at the given index.static StringsubSuf(CharSequence string, int fromIndex) 切割指定位置之后部分的字符串static String[]tokenizeToStringArray(String str, String delimiters) static String[]tokenizeToStringArray(String str, String delimiters, boolean trimTokens, boolean ignoreEmptyTokens) static StringtoLanguageTag(Locale locale) Deprecated.as of 5.0.4, in favor ofLocale.toLanguageTag()static String[]toLowerCase(String[] strArr) static String数组或集合转Stringstatic String[]toStringArray(Collection<String> collection) Copy the givenCollectioninto aStringarray.static String[]toStringArray(Enumeration<String> enumeration) Copy the givenEnumerationinto aStringarray.static StringtrimAllWhitespace(String str) Trim all whitespace from the givenString: leading, trailing, and in between characters.static String[]trimArrayElements(String[] array) Trim the elements of the givenStringarray, callingString.trim()on each of them.static StringtrimLeadingCharacter(String str, char leadingCharacter) Trim all occurrences of the supplied leading character from the givenString.static StringTrim leading whitespace from the givenString.static StringtrimTrailingCharacter(String str, char trailingCharacter) Trim all occurrences of the supplied trailing character from the givenString.static StringTrim trailing whitespace from the givenString.static StringtrimWhitespace(String str) Trim leading and trailing whitespace from the givenString.static Stringuncapitalize(String str) Uncapitalize aString, changing the first letter to lower case as perCharacter.toLowerCase(char).static StringUnqualify a string qualified by a '.' dot character.static StringUnqualify a string qualified by a separator character.static StringDecode the given encoded URI component value.Methods inherited from class org.apache.commons.lang3.StringUtils
abbreviate, abbreviate, abbreviate, abbreviate, abbreviateMiddle, appendIfMissing, appendIfMissingIgnoreCase, center, center, center, chomp, chomp, chop, compare, compare, compareIgnoreCase, compareIgnoreCase, contains, contains, containsAny, containsAnyIgnoreCase, containsIgnoreCase, containsNone, containsNone, containsOnly, containsOnly, countMatches, countMatches, defaultIfBlank, defaultIfEmpty, defaultString, defaultString, deleteWhitespace, difference, endsWith, endsWithAny, endsWithIgnoreCase, equals, equalsAny, equalsAnyIgnoreCase, equalsIgnoreCase, firstNonBlank, firstNonEmpty, getBytes, getBytes, getCommonPrefix, getDigits, getFuzzyDistance, getIfBlank, getIfEmpty, getJaroWinklerDistance, getLevenshteinDistance, getLevenshteinDistance, indexOf, indexOf, indexOf, indexOf, indexOfAny, indexOfAny, indexOfAny, indexOfAnyBut, indexOfAnyBut, indexOfDifference, indexOfDifference, indexOfIgnoreCase, indexOfIgnoreCase, isAllBlank, isAllEmpty, isAllLowerCase, isAllUpperCase, isAlpha, isAlphanumeric, isAlphanumericSpace, isAlphaSpace, isAnyBlank, isAnyEmpty, isAsciiPrintable, isBlank, isEmpty, isMixedCase, isNoneBlank, isNoneEmpty, isNotBlank, isNotEmpty, isNumeric, isNumericSpace, isWhitespace, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, join, joinWith, lastIndexOf, lastIndexOf, lastIndexOf, lastIndexOf, lastIndexOfAny, lastIndexOfIgnoreCase, lastIndexOfIgnoreCase, lastOrdinalIndexOf, left, leftPad, leftPad, leftPad, length, lowerCase, lowerCase, mid, normalizeSpace, ordinalIndexOf, overlay, prependIfMissing, prependIfMissingIgnoreCase, remove, remove, removeAll, removeEnd, removeEndIgnoreCase, removeFirst, removeIgnoreCase, removePattern, removeStart, removeStart, removeStartIgnoreCase, repeat, repeat, repeat, replace, replaceAll, replaceChars, replaceChars, replaceEach, replaceEachRepeatedly, replaceFirst, replaceIgnoreCase, replaceIgnoreCase, replaceOnce, replaceOnceIgnoreCase, replacePattern, reverse, reverseDelimited, right, rightPad, rightPad, rightPad, rotate, split, split, split, splitByCharacterType, splitByCharacterTypeCamelCase, splitByWholeSeparator, splitByWholeSeparator, splitByWholeSeparatorPreserveAllTokens, splitByWholeSeparatorPreserveAllTokens, splitPreserveAllTokens, splitPreserveAllTokens, splitPreserveAllTokens, splitPreserveAllTokens, startsWith, startsWithAny, startsWithIgnoreCase, strip, strip, stripAccents, stripAll, stripAll, stripEnd, stripStart, stripToEmpty, stripToNull, substring, substring, substringAfter, substringAfter, substringAfterLast, substringAfterLast, substringBefore, substringBefore, substringBeforeLast, substringBetween, substringBetween, substringsBetween, swapCase, toCodePoints, toEncodedString, toRootLowerCase, toRootUpperCase, toString, trim, trimToEmpty, trimToNull, truncate, truncate, unwrap, unwrap, upperCase, upperCase, valueOf, wrap, wrap, wrapIfMissing, wrapIfMissing
-
Constructor Details
-
StringTools
public StringTools()
-
-
Method Details
-
cleanBlank
清理空白字符- Parameters:
str- 被清理的字符串- Returns:
- 清理后的字符串
-
filter
过滤字符串- Parameters:
str- 字符串filter- 过滤器,Filter.accept(Object)返回为true的保留字符- Returns:
- 过滤后的字符串
- Since:
- 5.4.0
-
isNumber
是否为数字,支持包括:1、10进制 2、16进制数字(0x开头) 3、科学计数法形式(1234E3) 4、类型标识形式(123D) 5、正负数标识形式(+123、-234)
- Parameters:
str- 字符串值- Returns:
- 是否为数字
-
toLowerCase
-
contains
-
startWith
字符串是否以给定字符开始- Parameters:
str- 字符串c- 字符- Returns:
- 是否开始
-
startWith
是否以指定字符串开头
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回false- Parameters:
str- 被监测字符串prefix- 开头字符串ignoreCase- 是否忽略大小写- Returns:
- 是否以指定字符串开头
- Since:
- 5.4.3
-
startWith
public static boolean startWith(CharSequence str, CharSequence prefix, boolean ignoreCase, boolean ignoreEquals) 是否以指定字符串开头
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回false- Parameters:
str- 被监测字符串prefix- 开头字符串ignoreCase- 是否忽略大小写ignoreEquals- 是否忽略字符串相等的情况- Returns:
- 是否以指定字符串开头
- Since:
- 5.4.3
-
startWith
是否以指定字符串开头- Parameters:
str- 被监测字符串prefix- 开头字符串- Returns:
- 是否以指定字符串开头
-
startWithIgnoreEquals
是否以指定字符串开头,忽略相等字符串的情况- Parameters:
str- 被监测字符串prefix- 开头字符串- Returns:
- 是否以指定字符串开头并且两个字符串不相等
-
startWithIgnoreCase
是否以指定字符串开头,忽略大小写- Parameters:
str- 被监测字符串prefix- 开头字符串- Returns:
- 是否以指定字符串开头
-
startWithAny
给定字符串是否以任何一个字符串开始
给定字符串和数组为空都返回false- Parameters:
str- 给定字符串prefixes- 需要检测的开始字符串- Returns:
- 给定字符串是否以任何一个字符串开始
- Since:
- 3.0.6
-
isSubEquals
public static boolean isSubEquals(CharSequence str1, int start1, CharSequence str2, int start2, int length, boolean ignoreCase) 截取两个字符串的不同部分(长度一致),判断截取的子串是否相同
任意一个字符串为null返回false- Parameters:
str1- 第一个字符串start1- 第一个字符串开始的位置str2- 第二个字符串start2- 第二个字符串开始的位置length- 截取长度ignoreCase- 是否忽略大小写- Returns:
- 子串是否相同
- Since:
- 3.2.1
-
indexOf
public static int indexOf(CharSequence str, CharSequence searchStr, int fromIndex, boolean ignoreCase) 指定范围内查找字符串- Parameters:
str- 字符串searchStr- 需要查找位置的字符串fromIndex- 起始位置ignoreCase- 是否忽略大小写- Returns:
- 位置
- Since:
- 3.2.1
-
removeSuffix
去掉指定后缀- Parameters:
str- 字符串suffix- 后缀- Returns:
- 切掉后的字符串,若后缀不是 suffix, 返回原字符串
-
subSuf
切割指定位置之后部分的字符串- Parameters:
string- 字符串fromIndex- 切割开始的位置(包括)- Returns:
- 切割后后剩余的后半部分字符串
-
str
CharSequence转为字符串,null安全- Parameters:
cs-CharSequence- Returns:
- 字符串
-
replaceIgnoreCase
public static String replaceIgnoreCase(CharSequence str, CharSequence searchStr, CharSequence replacement) 替换字符串中的指定字符串,忽略大小写- Parameters:
str- 字符串searchStr- 被查找的字符串replacement- 被替换的字符串- Returns:
- 替换后的字符串
- Since:
- 4.0.3
-
replace
替换字符串中的指定字符串- Parameters:
str- 字符串searchStr- 被查找的字符串replacement- 被替换的字符串- Returns:
- 替换后的字符串
- Since:
- 4.0.3
-
replace
public static String replace(CharSequence str, CharSequence searchStr, CharSequence replacement, boolean ignoreCase) 替换字符串中的指定字符串- Parameters:
str- 字符串searchStr- 被查找的字符串replacement- 被替换的字符串ignoreCase- 是否忽略大小写- Returns:
- 替换后的字符串
- Since:
- 4.0.3
-
replace
public static String replace(CharSequence str, int fromIndex, CharSequence searchStr, CharSequence replacement, boolean ignoreCase) 替换字符串中的指定字符串- Parameters:
str- 字符串fromIndex- 开始位置(包括)searchStr- 被查找的字符串replacement- 被替换的字符串ignoreCase- 是否忽略大小写- Returns:
- 替换后的字符串
- Since:
- 4.0.3
-
replace
替换指定字符串的指定区间内字符为固定字符- Parameters:
str- 字符串startInclude- 开始位置(包含)endExclude- 结束位置(不包含)replacedChar- 被替换的字符- Returns:
- 替换后的字符串
- Since:
- 3.2.1
-
replace
替换所有正则匹配的文本,并使用自定义函数决定如何替换
replaceFun可以通过Matcher提取出匹配到的内容的不同部分,然后经过重新处理、组装变成新的内容放回原位。replaceAll(this.content, "(\\d+)", parameters -> "-" + parameters.group(1) + "-") // 结果为:"ZZZaaabbbccc中文-1234-"
- Parameters:
str- 要替换的字符串pattern- 用于匹配的正则式replaceFun- 决定如何替换的函数- Returns:
- 替换后的字符串
- Since:
- 4.2.2
- See Also:
-
replace
替换所有正则匹配的文本,并使用自定义函数决定如何替换- Parameters:
str- 要替换的字符串regex- 用于匹配的正则式replaceFun- 决定如何替换的函数- Returns:
- 替换后的字符串
- Since:
- 4.2.2
- See Also:
-
hide
替换指定字符串的指定区间内字符为"*" 俗称:脱敏功能,后面其他功能,可以见:DesensitizedUtils(脱敏工具类)StrUtil.hide(null,*,*)=null StrUtil.hide("",0,*)="" StrUtil.hide("jackduan@163.com",-1,4) ****duan@163.com StrUtil.hide("jackduan@163.com",2,3) ja*kduan@163.com StrUtil.hide("jackduan@163.com",3,2) jackduan@163.com StrUtil.hide("jackduan@163.com",16,16) jackduan@163.com StrUtil.hide("jackduan@163.com",16,17) jackduan@163.com- Parameters:
str- 字符串startInclude- 开始位置(包含)endExclude- 结束位置(不包含)- Returns:
- 替换后的字符串
- Since:
- 4.1.14
-
desensitized
public static String desensitized(CharSequence str, DesensitizedUtil.DesensitizedType desensitizedType) 脱敏,使用默认的脱敏策略StrUtil.desensitized("100", DesensitizedUtils.DesensitizedType.USER_ID)) = "0" StrUtil.desensitized("段正淳", DesensitizedUtils.DesensitizedType.CHINESE_NAME)) = "段**" StrUtil.desensitized("51343620000320711X", DesensitizedUtils.DesensitizedType.ID_CARD)) = "5***************1X" StrUtil.desensitized("09157518479", DesensitizedUtils.DesensitizedType.FIXED_PHONE)) = "0915*****79" StrUtil.desensitized("18049531999", DesensitizedUtils.DesensitizedType.MOBILE_PHONE)) = "180****1999" StrUtil.desensitized("北京市海淀区马连洼街道289号", DesensitizedUtils.DesensitizedType.ADDRESS)) = "北京市海淀区马********" StrUtil.desensitized("duandazhi-jack@gmail.com.cn", DesensitizedUtils.DesensitizedType.EMAIL)) = "d*************@gmail.com.cn" StrUtil.desensitized("1234567890", DesensitizedUtils.DesensitizedType.PASSWORD)) = "**********" StrUtil.desensitized("苏D40000", DesensitizedUtils.DesensitizedType.CAR_LICENSE)) = "苏D4***0" StrUtil.desensitized("11011111222233333256", DesensitizedType.BANK_CARD)) = "1101 **** **** **** 3256"- Parameters:
str- 字符串desensitizedType- 脱敏类型;可以脱敏:用户id、中文名、身份证号、座机号、手机号、地址、电子邮件、密码- Returns:
- 脱敏之后的字符串
- Since:
- 5.6.2
- See Also:
-
replaceChars
替换字符字符数组中所有的字符为replacedStr
提供的chars为所有需要被替换的字符,例如:"\r\n",则"\r"和"\n"都会被替换,哪怕他们单独存在- Parameters:
str- 被检查的字符串chars- 需要替换的字符列表,用一个字符串表示这个字符列表replacedStr- 替换成的字符串- Returns:
- 新字符串
- Since:
- 3.2.2
-
replaceChars
替换字符字符数组中所有的字符为replacedStr- Parameters:
str- 被检查的字符串chars- 需要替换的字符列表replacedStr- 替换成的字符串- Returns:
- 新字符串
- Since:
- 3.2.2
-
isAllCharMatch
字符串的每一个字符是否都与定义的匹配器匹配- Parameters:
value- 字符串matcher- 匹配器- Returns:
- 是否全部匹配
- Since:
- 3.2.3
-
toString
数组或集合转String- Parameters:
obj- 集合或数组对象- Returns:
- 数组字符串,与集合转字符串格式相同
-
getContainsStr
查找指定字符串是否包含指定字符串列表中的任意一个字符串,如果包含返回找到的第一个字符串- Parameters:
str- 指定字符串testStrs- 需要检查的字符串数组- Returns:
- 被包含的第一个字符串
- Since:
- 3.2.0
-
containsAny
查找指定字符串是否包含指定字符串列表中的任意一个字符串- Parameters:
str- 指定字符串testStrs- 需要检查的字符串数组- Returns:
- 是否包含任意一个字符串
- Since:
- 3.2.0
-
containsAny
查找指定字符串是否包含指定字符列表中的任意一个字符- Parameters:
str- 指定字符串testChars- 需要检查的字符数组- Returns:
- 是否包含任意一个字符
- Since:
- 4.1.11
-
subPre
切割指定位置之前部分的字符串- Parameters:
string- 字符串toIndexExclude- 切割到的位置(不包括)- Returns:
- 切割后的剩余的前半部分字符串
-
sub
改进JDK subString
index从0开始计算,最后一个字符为-1
如果from和to位置一样,返回 ""
如果from或to为负数,则按照length从后向前数位置,如果绝对值大于字符串长度,则from归到0,to归到length
如果经过修正的index中from大于to,则互换from和to example:
abcdefgh 2 3 =》 c
abcdefgh 2 -3 =》 cde- Parameters:
str- StringfromIndexInclude- 开始的index(包括)toIndexExclude- 结束的index(不包括)- Returns:
- 字串
-
format
格式化文本,使用 {varName} 占位
map = {a: "aValue", b: "bValue"} format("{a} and {b}", map) ---=》 aValue and bValue- Parameters:
template- 文本模板,被替换的部分用 {key} 表示map- 参数值对- Returns:
- 格式化后的文本
-
format
格式化文本,使用 {varName} 占位
map = {a: "aValue", b: "bValue"} format("{a} and {b}", map) ---=》 aValue and bValue- Parameters:
template- 文本模板,被替换的部分用 {key} 表示map- 参数值对ignoreNull- 是否忽略null值,忽略则null值对应的变量不被替换,否则替换为""- Returns:
- 格式化后的文本
- Since:
- 5.4.3
-
format
public static String format(CharSequence template, String special, Map<?, ?> map, boolean ignoreNull) 格式化文本,使用 'special'{varName} 特殊字符占位
map = {a: "aValue", b: "bValue"} format("${a} and ${b}", map) ---=》 aValue and bValue- Parameters:
template- 文本模板,被替换的部分用 ${key} 表示map- 参数值对ignoreNull- 是否忽略null值,忽略则null值对应的变量不被替换,否则替换为""- Returns:
- 格式化后的文本
- Since:
- 5.4.3
-
format
public static String format(CharSequence template, String start, String end, Map<?, ?> map, boolean ignoreNull) -
format
格式化文本, {} 表示占位符
此方法只是简单将占位符 {} 按照顺序替换为参数
如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
例:
通常使用:format("this is {} for {}", "a", "b") =》 this is a for b
转义{}: format("this is \\{} for {}", "a", "b") =》 this is \{} for a
转义\: format("this is \\\\{} for {}", "a", "b") =》 this is \a for b- Parameters:
template- 文本模板,被替换的部分用 {} 表示,如果模板为null,返回"null"params- 参数值- Returns:
- 格式化后的文本,如果模板为null,返回"null"
-
hasLength
Check that the givenCharSequenceis neithernullnor of length 0.Note: this method returns
truefor aCharSequencethat purely consists of whitespace.StringTools.hasLength(null) = false StringTools.hasLength("") = false StringTools.hasLength(" ") = true StringTools.hasLength("Hello") = true- Parameters:
str- theCharSequenceto check (may benull)- Returns:
trueif theCharSequenceis notnulland has length- See Also:
-
hasLength
Check that the givenStringis neithernullnor of length 0.Note: this method returns
truefor aStringthat purely consists of whitespace.- Parameters:
str- theStringto check (may benull)- Returns:
trueif theStringis notnulland has length- See Also:
-
hasText
Check whether the givenCharSequencecontains actual text.More specifically, this method returns
trueif theCharSequenceis notnull, its length is greater than 0, and it contains at least one non-whitespace character.StringTools.hasText(null) = false StringTools.hasText("") = false StringTools.hasText(" ") = false StringTools.hasText("12345") = true StringTools.hasText(" 12345 ") = true- Parameters:
str- theCharSequenceto check (may benull)- Returns:
trueif theCharSequenceis notnull, its length is greater than 0, and it does not contain whitespace only- See Also:
-
hasText
Check whether the givenStringcontains actual text.More specifically, this method returns
trueif theStringis notnull, its length is greater than 0, and it contains at least one non-whitespace character.- Parameters:
str- theStringto check (may benull)- Returns:
trueif theStringis notnull, its length is greater than 0, and it does not contain whitespace only- See Also:
-
containsWhitespace
Check whether the givenCharSequencecontains any whitespace characters.- Parameters:
str- theCharSequenceto check (may benull)- Returns:
trueif theCharSequenceis not empty and contains at least 1 whitespace character- See Also:
-
containsWhitespace
Check whether the givenStringcontains any whitespace characters.- Parameters:
str- theStringto check (may benull)- Returns:
trueif theStringis not empty and contains at least 1 whitespace character- See Also:
-
trimWhitespace
Trim leading and trailing whitespace from the givenString.- Parameters:
str- theStringto check- Returns:
- the trimmed
String - See Also:
-
trimAllWhitespace
Trim all whitespace from the givenString: leading, trailing, and in between characters.- Parameters:
str- theStringto check- Returns:
- the trimmed
String - See Also:
-
trimLeadingWhitespace
Trim leading whitespace from the givenString.- Parameters:
str- theStringto check- Returns:
- the trimmed
String - See Also:
-
trimTrailingWhitespace
Trim trailing whitespace from the givenString.- Parameters:
str- theStringto check- Returns:
- the trimmed
String - See Also:
-
trimLeadingCharacter
Trim all occurrences of the supplied leading character from the givenString.- Parameters:
str- theStringto checkleadingCharacter- the leading character to be trimmed- Returns:
- the trimmed
String
-
trimTrailingCharacter
Trim all occurrences of the supplied trailing character from the givenString.- Parameters:
str- theStringto checktrailingCharacter- the trailing character to be trimmed- Returns:
- the trimmed
String
-
startsWithIgnoreCase
Test if the givenStringstarts with the specified prefix, ignoring upper/lower case.- Parameters:
str- theStringto checkprefix- the prefix to look for- See Also:
-
endsWithIgnoreCase
Test if the givenStringends with the specified suffix, ignoring upper/lower case.- Parameters:
str- theStringto checksuffix- the suffix to look for- See Also:
-
substringMatch
Test whether the given string matches the given substring at the given index.- Parameters:
str- the original string (or StringBuilder)index- the index in the original string to start matching againstsubstring- the substring to match at the given index
-
countOccurrencesOf
Count the occurrences of the substringsubin stringstr.- Parameters:
str- string to search insub- string to search for
-
replace
Replace all occurrences of a substring within a string with another string.- Parameters:
inString-Stringto examineoldPattern-Stringto replacenewPattern-Stringto insert- Returns:
- a
Stringwith the replacements
-
delete
Delete all occurrences of the given substring.- Parameters:
inString- the originalStringpattern- the pattern to delete all occurrences of- Returns:
- the resulting
String
-
deleteAny
Delete any character in a givenString.- Parameters:
inString- the originalStringcharsToDelete- a set of characters to delete. E.g. "az\n" will delete 'a's, 'z's and new lines.- Returns:
- the resulting
String
-
quote
Quote the givenStringwith single quotes.- Parameters:
str- the inputString(e.g. "myString")- Returns:
- the quoted
String(e.g. "'myString'"), ornullif the input wasnull
-
quoteIfString
Turn the given Object into aStringwith single quotes if it is aString; keeping the Object as-is else.- Parameters:
obj- the input Object (e.g. "myString")- Returns:
- the quoted
String(e.g. "'myString'"), or the input object as-is if not aString
-
unqualify
Unqualify a string qualified by a '.' dot character. For example, "this.name.is.qualified", returns "qualified".- Parameters:
qualifiedName- the qualified name
-
unqualify
Unqualify a string qualified by a separator character. For example, "this:name:is:qualified" returns "qualified" if using a ':' separator.- Parameters:
qualifiedName- the qualified nameseparator- the separator
-
capitalize
Capitalize aString, changing the first letter to upper case as perCharacter.toUpperCase(char). No other letters are changed.- Parameters:
str- theStringto capitalize- Returns:
- the capitalized
String
-
uncapitalize
Uncapitalize aString, changing the first letter to lower case as perCharacter.toLowerCase(char). No other letters are changed.- Parameters:
str- theStringto uncapitalize- Returns:
- the uncapitalized
String
-
getFilename
Extract the filename from the given Java resource path, e.g."mypath/myfile.txt" -> "myfile.txt".- Parameters:
path- the file path (may benull)- Returns:
- the extracted filename, or
nullif none
-
getFilenameExtension
Extract the filename extension from the given Java resource path, e.g. "mypath/myfile.txt" -> "txt".- Parameters:
path- the file path (may benull)- Returns:
- the extracted filename extension, or
nullif none
-
stripFilenameExtension
Strip the filename extension from the given Java resource path, e.g. "mypath/myfile.txt" -> "mypath/myfile".- Parameters:
path- the file path- Returns:
- the path with stripped filename extension
-
applyRelativePath
Apply the given relative path to the given Java resource path, assuming standard Java folder separation (i.e. "/" separators).- Parameters:
path- the path to start from (usually a full file path)relativePath- the relative path to apply (relative to the full file path above)- Returns:
- the full file path that results from applying the relative path
-
cleanPath
Normalize the path by suppressing sequences like "path/.." and inner simple dots.The result is convenient for path comparison. For other uses, notice that Windows separators ("\") are replaced by simple slashes.
- Parameters:
path- the original path- Returns:
- the normalized path
-
pathEquals
Compare two paths after normalization of them.- Parameters:
path1- first path for comparisonpath2- second path for comparison- Returns:
- whether the two paths are equivalent after normalization
-
uriDecode
Decode the given encoded URI component value. Based on the following rules:- Alphanumeric characters
"a"through"z","A"through"Z", and"0"through"9"stay the same. - Special characters
"-","_",".", and"*"stay the same. - A sequence "
%<i>xy</i>" is interpreted as a hexadecimal representation of the character.
- Parameters:
source- the encoded Stringcharset- the character set- Returns:
- the decoded value
- Throws:
IllegalArgumentException- when the given source contains invalid encoded sequences- Since:
- 5.0
- See Also:
- Alphanumeric characters
-
parseLocale
Parse the givenStringvalue into aLocale, accepting theLocale.toString()format as well as BCP 47 language tags.- Parameters:
localeValue- the locale value: following eitherLocale'stoString()format ("en", "en_UK", etc), also accepting spaces as separators (as an alternative to underscores), or BCP 47 (e.g. "en-UK") as specified byLocale.forLanguageTag(java.lang.String)on Java 7+- Returns:
- a corresponding
Localeinstance, ornullif none - Throws:
IllegalArgumentException- in case of an invalid locale specification- Since:
- 5.0.4
- See Also:
-
parseLocaleString
Parse the givenStringrepresentation into aLocale.For many parsing scenarios, this is an inverse operation of
Locale's toString, in a lenient sense. This method does not aim for strictLocaledesign compliance; it is rather specifically tailored for typical Spring parsing needs.Note: This delegate does not accept the BCP 47 language tag format. Please use
parseLocale(java.lang.String)for lenient parsing of both formats.- Parameters:
localeString- the localeString: followingLocale'stoString()format ("en", "en_UK", etc), also accepting spaces as separators (as an alternative to underscores)- Returns:
- a corresponding
Localeinstance, ornullif none - Throws:
IllegalArgumentException- in case of an invalid locale specification
-
toLanguageTag
Deprecated.as of 5.0.4, in favor ofLocale.toLanguageTag()Determine the RFC 3066 compliant language tag, as used for the HTTP "Accept-Language" header.- Parameters:
locale- the Locale to transform to a language tag- Returns:
- the RFC 3066 compliant language tag as
String
-
parseTimeZoneString
Parse the giventimeZoneStringvalue into aTimeZone.- Parameters:
timeZoneString- the time zoneString, followingTimeZone.getTimeZone(String)but throwingIllegalArgumentExceptionin case of an invalid time zone specification- Returns:
- a corresponding
TimeZoneinstance - Throws:
IllegalArgumentException- in case of an invalid time zone specification
-
toStringArray
- Parameters:
collection- theCollectionto copy (potentiallynullor empty)- Returns:
- the resulting
Stringarray
-
toStringArray
- Parameters:
enumeration- theEnumerationto copy (potentiallynullor empty)- Returns:
- the resulting
Stringarray
-
addStringToArray
Append the givenStringto the givenStringarray, returning a new array consisting of the input array contents plus the givenString.- Parameters:
array- the array to append to (can benull)str- theStringto append- Returns:
- the new array (never
null)
-
concatenateStringArrays
Concatenate the givenStringarrays into one, with overlapping array elements included twice.The order of elements in the original arrays is preserved.
- Parameters:
array1- the first array (can benull)array2- the second array (can benull)- Returns:
- the new array (
nullif both given arrays werenull)
-
mergeStringArrays
Deprecated.as of 4.3.15, in favor of manual merging viaLinkedHashSet(with every entry included at most once, even entries within the first array)Merge the givenStringarrays into one, with overlapping array elements only included once.The order of elements in the original arrays is preserved (with the exception of overlapping elements, which are only included on their first occurrence).
- Parameters:
array1- the first array (can benull)array2- the second array (can benull)- Returns:
- the new array (
nullif both given arrays werenull)
-
sortStringArray
Sort the givenStringarray if necessary.- Parameters:
array- the original array (potentially empty)- Returns:
- the array in sorted form (never
null)
-
trimArrayElements
Trim the elements of the givenStringarray, callingString.trim()on each of them.- Parameters:
array- the originalStringarray (potentially empty)- Returns:
- the resulting array (of the same size) with trimmed elements
-
removeDuplicateStrings
Remove duplicate strings from the given array.As of 4.2, it preserves the original order, as it uses a
LinkedHashSet.- Parameters:
array- theStringarray (potentially empty)- Returns:
- an array without duplicates, in natural sort order
-
split
Split aStringat the first occurrence of the delimiter. Does not include the delimiter in the result.- Parameters:
toSplit- the string to split (potentiallynullor empty)delimiter- to split the string up with (potentiallynullor empty)- Returns:
- a two element array with index 0 being before the delimiter, and
index 1 being after the delimiter (neither element includes the delimiter);
or
nullif the delimiter wasn't found in the given inputString
-
splitArrayElementsIntoProperties
取一个字符串数组,并根据给定的定界符分割每个元素。然后,生成一个Properties实例,其中分隔符的左侧提供键,而分隔符的右侧提供值。 Take an array of strings and split each element based on the given delimiter. APropertiesinstance is then generated, with the left of the delimiter providing the key, and the right of the delimiter providing the value.Will trim both the key and value before adding them to the
Properties.- Parameters:
array- the array to processdelimiter- to split each element using (typically the equals symbol)- Returns:
- a
Propertiesinstance representing the array contents, ornullif the array to process wasnullor empty
-
splitArrayElementsIntoProperties
public static Properties splitArrayElementsIntoProperties(String[] array, String delimiter, String charsToDelete) 取一个字符串数组,并根据给定的定界符分割每个元素。然后,生成一个Properties实例,其中分隔符的左侧提供键,而分隔符的右侧提供值。 Take an array of strings and split each element based on the given delimiter. APropertiesinstance is then generated, with the left of the delimiter providing the key, and the right of the delimiter providing the value.Will trim both the key and value before adding them to the
Propertiesinstance.- Parameters:
array- the array to processdelimiter- to split each element using (typically the equals symbol)charsToDelete- one or more characters to remove from each element prior to attempting the split operation (typically the quotation mark symbol), ornullif no removal should occur- Returns:
- a
Propertiesinstance representing the array contents, ornullif the array to process wasnullor empty
-
tokenizeToStringArray
Tokenize the givenStringinto aStringarray via aStringTokenizer.Trims tokens and omits empty tokens.
The given
delimitersstring can consist of any number of delimiter characters. Each of those characters can be used to separate tokens. A delimiter is always a single character; for multi-character delimiters, consider usingdelimitedListToStringArray(java.lang.String, java.lang.String).- Parameters:
str- theStringto tokenize (potentiallynullor empty)delimiters- the delimiter characters, assembled as aString(each of the characters is individually considered as a delimiter)- Returns:
- an array of the tokens
- See Also:
-
tokenizeToStringArray
public static String[] tokenizeToStringArray(String str, String delimiters, boolean trimTokens, boolean ignoreEmptyTokens) Tokenize the givenStringinto aStringarray via aStringTokenizer.The given
delimitersstring can consist of any number of delimiter characters. Each of those characters can be used to separate tokens. A delimiter is always a single character; for multi-character delimiters, consider usingdelimitedListToStringArray(java.lang.String, java.lang.String).- Parameters:
str- theStringto tokenize (potentiallynullor empty)delimiters- the delimiter characters, assembled as aString(each of the characters is individually considered as a delimiter)trimTokens- trim the tokens viaString.trim()ignoreEmptyTokens- omit empty tokens from the result array (only applies to tokens that are empty after trimming; StringTokenizer will not consider subsequent delimiters as token in the first place).- Returns:
- an array of the tokens
- See Also:
-
delimitedListToStringArray
Take aStringthat is a delimited list and convert it into aStringarray.A single
delimitermay consist of more than one character, but it will still be considered as a single delimiter string, rather than as bunch of potential delimiter characters, in contrast totokenizeToStringArray(java.lang.String, java.lang.String).- Parameters:
str- the inputString(potentiallynullor empty)delimiter- the delimiter between elements (this is a single delimiter, rather than a bunch individual delimiter characters)- Returns:
- an array of the tokens in the list
- See Also:
-
delimitedListToStringArray
public static String[] delimitedListToStringArray(String str, String delimiter, String charsToDelete) Take aStringthat is a delimited list and convert it into aStringarray.A single
delimitermay consist of more than one character, but it will still be considered as a single delimiter string, rather than as bunch of potential delimiter characters, in contrast totokenizeToStringArray(java.lang.String, java.lang.String).- Parameters:
str- the inputString(potentiallynullor empty)delimiter- the delimiter between elements (this is a single delimiter, rather than a bunch individual delimiter characters)charsToDelete- a set of characters to delete; useful for deleting unwanted line breaks: e.g. "\r\n\f" will delete all new lines and line feeds in aString- Returns:
- an array of the tokens in the list
- See Also:
-
commaDelimitedListToStringArray
将以逗号分隔的列表(例如,CSV文件中的一行)转换为字符串数组。 Convert a comma delimited list (e.g., a row from a CSV file) into an array of strings.- Parameters:
str- the inputString(potentiallynullor empty)- Returns:
- an array of strings, or the empty array in case of empty input
-
commaDelimitedListToSet
Convert a comma delimited list (e.g., a row from a CSV file) into a set.Note that this will suppress duplicates, and as of 4.2, the elements in the returned set will preserve the original order in a
LinkedHashSet.- Parameters:
str- the inputString(potentiallynullor empty)- Returns:
- a set of
Stringentries in the list - See Also:
-
collectionToDelimitedString
public static String collectionToDelimitedString(Collection<?> coll, String delim, String prefix, String suffix) - Parameters:
coll- theCollectionto convert (potentiallynullor empty)delim- the delimiter to use (typically a ",")prefix- theStringto start each element withsuffix- theStringto end each element with- Returns:
- the delimited
String
-
collectionToDelimitedString
Convert aCollectioninto a delimitedString(e.g. CSV).Useful for
toString()implementations.- Parameters:
coll- theCollectionto convert (potentiallynullor empty)delim- the delimiter to use (typically a ",")- Returns:
- the delimited
String
-
collectionToCommaDelimitedString
Convert aCollectioninto a delimitedString(e.g., CSV).Useful for
toString()implementations.- Parameters:
coll- theCollectionto convert (potentiallynullor empty)- Returns:
- the delimited
String
-
arrayToDelimitedString
Convert aStringarray into a delimitedString(e.g. CSV).Useful for
toString()implementations.- Parameters:
arr- the array to display (potentiallynullor empty)delim- the delimiter to use (typically a ",")- Returns:
- the delimited
String
-
arrayToCommaDelimitedString
Convert aStringarray into a comma delimitedString(i.e., CSV).Useful for
toString()implementations.- Parameters:
arr- the array to display (potentiallynullor empty)- Returns:
- the delimited
String
-
getReader
获得StringReader- Parameters:
str- 字符串- Returns:
- StringReader
-
getWriter
获得StringWriter- Returns:
- StringWriter
-
LinkedHashSet(with every entry included at most once, even entries within the first array)