一、StringUtils字符串工具类
1.1.判断是否空字符串
isBlank(final CharSequence cs)
:判断是空字符串;isNotBlank(final CharSequence cs)
:判断不是空字符串;isEmpty(final CharSequence cs)
:判断是空字符串;isNotEmpty(final CharSequence cs)
:判断不是空字符串;字符串判空示例代码
1 | StringUtils.isBlank(null); = true |
说明:
isBlank
和isEmpty
的区别在于在于空格字符串的判断不同;简言之,Empty认为空格字符不是空字符串
1.2.判断是否存在空字符串
isAnyEmpty(final CharSequence... css)
:判断是否存在空字符串;isNoneEmpty(final CharSequence... css)
判断全部都不是空字符串;isAllEmpty(final CharSequence... css)
:判断全部为空字符串;isAnyBlank(final CharSequence... css)
:判断是否存在空字符串;isNoneBlank(final CharSequence... css)
判断全部都不是空字符串;isAllBlank(final CharSequence... css)
:判断全部为空字符串;
判断是否存在空字符串示例代码
1 | StringUtils.isAnyBlank(null) = true |
说明:同理,这里的区别也是在于空格字符串的不同对待;
1.3.去除字符串前后空格
trim(final String str)
:去除字符串前后空格,同时不改变原字符串;trimToNull(final String str)
:去除字符串前后空格,如果去除后是空字符串就转为null;trimToEmpty(final String str)
:去除字符串前后空格,如果去除后是空字符串就转为空字符串(null转为""
);strip(final String str)
:这个也可以去除字符串的前后空格,不改变原字符串;stripToNull(String str)
:同trimToNull(final String str)
类似;stripToEmpty(final String str)
:同trimToEmpty(final String str)
类似;
去除字符串前后空格示例代码
1 | StringUtils.trim(null) = null |
1.4.字符串截取
truncate(final String str, final int maxWidth)
:截取字符串的前maxWidth
个字符;- 如果
str
的长度小于maxWidth
就直接返回str
; - 如果
maxWidth
小于0则抛出IllegalArgumentException
异常;
- 如果
truncate(final String str, final int offset, final int maxWidth)
:截取指定区域的字符串;
字符串截取示例代码
1 | StringUtils.truncate(null, 0) = null |
说明:更多的示例代码可以参考
StringUtils
源码;
1.5.字符串的剥离
strip(String str, final String stripChars)
:从str
的前后剥离stripChars
字符串;stripStart(final String str, final String stripChars)
:从开始的地方剥离指定字符串;stripEnd(final String str, final String stripChars)
:从结束的地方剥离字符串;String[] stripAll(final String... strs)
:对数组中的所有字符串进行去除空格;String[] stripAll(final String[] strs, final String stripChars)
:对数组中的每个字符串进行字符串剥离;
字符串的剥离示例代码
1 | StringUtils.strip("abcde", "de"); = abc |
1.6.字符串的比较
equals(final CharSequence cs1, final CharSequence cs2)
:判断两个字符串是否相等;equalsIgnoreCase(final CharSequence str1, final CharSequence str2)
:判断两个字符串在忽略大小写下是否相等;compare(final String str1, final String str2)
:比较两个字符串长度的大小;compareIgnoreCase(final String str1, final String str2)
忽略大小写下比较两个字符串的大小;equalsAny(final CharSequence string, final CharSequence... searchStrings)
:比较多字符串中是否存在相同的字符串;equalsAnyIgnoreCase(final CharSequence string, final CharSequence...searchStrings)
:忽略大小写是否存在相同字符
字符串的比较代码示例
1 | StringUtils.equals("abc", null) = false |
1.7.字符串的查找
indexOf(final CharSequence seq, final int searchChar)
:查找指定字符在字符串中首次出现的位置的索引值;indexOf(final CharSequence seq, final int searchChar, final int startPos)
:从指定位置final int startPos
开始查找;indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr)
:忽略大小写的查找字符串首次出现位置indexOfIgnoreCase(final CharSequence str, final CharSequence searchStr, int startPos)
:同indexOf`类似;
lastIndexOf(final CharSequence seq, final int searchChar)
:从尾部开始查找;lastIndexOf(final CharSequence seq, final int searchChar, final int startPos)
:同理从尾部开始查找指定位置前的字符
字符串的查找示例代码
1 | StringUtils.indexOf("aabaabaa", 'b') = 2 |
1.8.是否包含字符串
contains(final CharSequence seq, final int searchChar
:是否包含指定字符串;containsIgnoreCase(final CharSequence str, final CharSequence searchStr
:忽略大小写下检查是否包含指定字符串containsWhitespace(final CharSequence seq)
:是否包含空白字符串;containsAny(final CharSequence cs, final char... searchChars)
:判断字符窜是否包含后面多个中的任意一个;containsOnly(final CharSequence cs, final char... valid)
:判断前面的字符是否全部是后面的字符中的;containsNone(final CharSequence cs, final char... searchChars)
:判断前面字符是否不含其后字符的任意一个字符
是否包含字符串示例代码
1 | StringUtils.contains("abc", 'a') = true |
1.9.截取字符串
substring(final String str, int start)
:指定开始为止截取字符串;substring(final String str, int start)
:指定开始和结束为止截取字符串;left(final String str, final int len)
:得到一个字符串最左边的len
个字符;right(final String str, final int len)
:得到一个字符串最右边的len
个字符;mid(final String str, int pos, final int len)
:得到中间的指定区域的字符,是左包含;substringBefore(final String str, final String separator)
:得到一个字符串中第一个分割符之前的字符串;substringAfter(final String str, final String separator)
:同理,得到一个字符串第一个分割符之后的字符串;
截取字符串示例代码
1 | StringUtils.substring("abc", 2) = "c" |
1.10.字符串分割
String[] split(final String str)
:按照空格分割字符串,返回数组;String[] split(final String str, final char separatorChar)
:指定分割符分割字符串;String[] split(final String str, final String separatorChars, final int max)
:指定分割符,指定最大分割的数组大小;String[] splitByCharacterTypeCamelCase(final String str)
:根据字符串类型分割字符串;
字符串分割示例代码
1 | StringUtils.split("abc def") = ["abc", "def"] |
1.11.字符串连接(数组转字符)
join(final T... elements)
;普通的连接字符串join(final Object[] array, final char separator)
:指定连接符,连接字符串;
字符串连接示例代码
1 | StringUtils.join(["a", "b", "c"]) = "abc" |
1.12.删除和替换字符串
removeStart(final String str, final String remove)
:删除字符串中的指定的前缀字符串;removeStartIgnoreCase(final String str, final String remove)
:同removeStart
类似,只是忽略的大小写;removeEnd(final String str, final String remove)
:同removeStart
相反;deleteWhitespace(final String str)
:删除字符串中的空格;remove(final String str, final String remove)
:从字符串中移除指定字符串;removeAll(final String text, final String regex)
:移除符合正则表达式的所有字符串;replaceOnce(final String text, final String searchString, final String replacement)
:将字符串中指定字符替换一个;replaceAll(final String text, final String regex, final String replacement)
:将字符串中指定字符替换所有;
删除和替换字符串示例代码
1 | StringUtils.removeStart("www.domain.com", "www.") = "domain.com" |
1.13.重复字符串
repeat(final String str, final int repeat)
:生成指定重复次数的重复字符串;
重复字符串生成示例代码
1 | StringUtils.repeat("a", 3) = "aaa" |
1.14.字符串出现次数
countMatches(final CharSequence str, final CharSequence sub)
:获取指定字符串在原字符串中出现的次数;
字符串出现次数示例代码
1 | StringUtils.countMatches("abba", "a") = 2 |
二、StringUtils其他常用方法
2.1.判断是否是空格或者数字
isNumericSpace(final CharSequence cs)
1 | StringUtils.isNumericSpace("12 3") = true |
2.2.判断是否是空格
isWhitespace(final CharSequence cs)
1 | StringUtils.isWhitespace("") = true |
2.3.判断是否全是小写
isAllLowerCase(final CharSequence cs)
1 | StringUtils.isAllLowerCase("abc") = true |
2.4.判断是否全是大写
isAllUpperCase(final CharSequence cs)
1 | StringUtils.isAllUpperCase("ABC") = true |
2.5.反转字符串
reverse(final String str)
1 | StringUtils.reverse("bat") = "tab" |
2.6.字符串显示省略号
abbreviate(final String str, final int maxWidth)
1 | StringUtils.abbreviate("abcdefg", 6) = "abc..." |
2.7.判断字符串是否以什么开头
startsWith(final CharSequence str, final CharSequence prefix)
1 | StringUtils.startsWith("abcdef", null) = false |
2.7.判断字符串是否以什么结尾
endsWith(final CharSequence str, final CharSequence suffix)
1 | StringUtils.endsWith("ABCDEF", "def") = false |