StringUtils 是 Apache Commons Lang 中提供的一个字符串处理工具类,其中包含了丰富的字符串处理方法。下面详细介绍 StringUtils 类中的所有方法:
- isEmpty(CharSequence str) 判断字符序列 str 是否为空,如果为 null 或长度为 0 则返回 true。
- isNotEmpty 与 isEmpty 方法功能相反,当字符序列不为空时返回 true。
- isAnyEmpty(CharSequence… css) 判断多个字符序列是否都为空,如果有一个为空则返回 true。
- isNoneEmpty(CharSequence… css) 与 isAnyEmpty 方法功能相反,当所有字符序列都不为空时返回 true。
- isBlank(CharSequence str) 判断字符序列 str 是否为空或只包含空格符,如果为 null、长度为 0 或只包含空格符则返回 true。
- isNotBlank(CharSequence str) 与 isBlank 方法功能相反,当字符序列不为空且不是只包含空格符时返回 true。
- trim(CharSequence str) 去除字符序列 str 开头和结尾的空格符。
- trimToNull(CharSequence str) 将 trim(str) 后的结果若为空字符串,则返回 null,否则返回去掉空格符的字符串。
- trimToEmpty(CharSequence str) 将 trim(str) 后的结果若为空字符串,则返回空字符串,否则返回去掉空格符的字符串。
- equals(CharSequence cs1, CharSequence cs2) 比较两个字符序列 cs1 和 cs2 是否相等,如果都为 null 则返回 true。
- equalsIgnoreCase(CharSequence str1, CharSequence str2) 比较两个字符序列 str1 和 str2 是否相等,忽略大小写,如果都为 null 则返回 true。
- indexOf(CharSequence seq, int searchChar) 查找字符序列 seq 中搜索字符 searchChar 第一次出现的位置,如果未找到则返回 -1。
- indexOf(CharSequence seq, CharSequence searchSeq) 查找字符序列 seq 中子串 searchSeq 第一次出现的位置,如果未找到则返回 -1。
- lastIndexOf(CharSequence seq, int searchChar) 查找字符序列 seq 中搜索字符 searchChar 最后一次出现的位置,如果未找到则返回 -1。
- lastIndexOf(CharSequence seq, CharSequence searchSeq) 查找字符序列 seq 中子串 searchSeq 最后一次出现的位置,如果未找到则返回 -1。
- contains(CharSequence seq, CharSequence searchSeq) 判断字符序列 seq 是否包含子串 searchSeq。
- containsIgnoreCase(CharSequence str1, CharSequence str2) 判断字符序列 str1 是否包含字符串 str2,忽略大小写。
- indexOfAny(CharSequence cs, char… searchChars) 在字符序列 cs 中查找字符数组 searchChars 中任意一个字符第一次出现的位置,如果未找到则返回 -1。
- indexOfAny(CharSequence cs, String searchChars) 与 indexOfAny(CharSequence cs, char… searchChars) 功能相同,只不过搜索字符变成了字符串。
- containsAny(CharSequence cs, char… searchChars) 判断字符序列 cs 中是否包含字符数组 searchChars 中的任意一个字符。
- containsAny(CharSequence cs, CharSequence searchChars) 与 containsAny(CharSequence cs, char… searchChars) 功能相同,只不过搜索字符变成了字符序列。
- containsAnyIgnoreCase(CharSequence cs, CharSequence… searchCharSequences) 判断字符序列 cs 中是否包含字符序列数组 searchCharSequences 中的任意一个字符串,忽略大小写。
- containsNone(CharSequence cs, char… searchChars) 判断字符序列 cs 中是否不包含字符数组 searchChars 中的任何一个字符。
- containsNone(CharSequence cs, String invalidChars) 与 containsNone(CharSequence cs, char… searchChars) 功能相同,只不过搜索字符变成了字符串。
- indexOfAnyBut(CharSequence str, char… searchChars) 查找字符序列 str 中除了字符数组 searchChars 中的字符之外,第一次出现的位置,如果未找到则返回 -1。
- indexOfIgnoreCase(CharSequence str, CharSequence searchStr) 查找字符序列 str 中字符串 searchStr 第一次出现的位置,忽略大小写,如果未找到则返回 -1。
- lastIndexOfIgnoreCase(CharSequence str, CharSequence searchStr) 查找字符序列 str 中字符串 searchStr 最后一次出现的位置,忽略大小写,如果未找到则返回 -1。
- substring(CharSequence str, int start) 截取字符序列 str 从 start 开始到末尾的子串。
- substring(CharSequence str, int start, int end) 截取字符序列 str 从 start 开始到 end 结束的子串。
- left(CharSequence str, int len) 从字符序列 str 中左边开始截取 len 个字符,如果 str 长度小于 len 则返回整个字符序列。
- right(CharSequence str, int len) 从字符序列 str 中右边开始截取 len 个字符,如果 str 长度小于 len 则返回整个字符序列。
- mid(CharSequence str, int pos, int len) 从字符序列 str 中第 pos 个字符开始截取 len 个字符。
- substringBefore(CharSequence str, CharSequence separator) 获取字符序列 str 中分隔符 separator 第一次出现之前的子串,如果未找到分隔符则返回整个字符串。
- substringAfter(CharSequence str, CharSequence separator) 获取字符序列 str 中分隔符 separator 第一次出现之后的子串,如果未找到分隔符则返回空字符串。
- substringBeforeLast(CharSequence str, CharSequence separator) 与 substringBefore(CharSequence str, CharSequence separator) 功能相同,只不过查找最后一次出现的分隔符。
- substringAfterLast(CharSequence str, CharSequence separator) 与 substringAfter(CharSequence str, CharSequence separator) 功能相同,只不过查找最后一次出现的分隔符。
- substringBetween(CharSequence str, CharSequence tag) 获取字符序列 str 中两个 tag 之间的子串,如果没有找到则返回 null。
- substringBetween(CharSequence str, CharSequence open, CharSequence close) 获取字符序列 str 中 open 和 close 之间的子串,如果没有找到则返回 null。
- getNestedString(CharSequence str, CharSequence tag) 与 substringBetween(CharSequence str, CharSequence tag) 功能相同,只不过将 tag 替换成了匹配前缀和后缀。
- countMatches(CharSequence str, CharSequence sub) 计算在字符序列 str 中匹配子串 sub 的个数。
- replaceOnce(CharSequence text, CharSequence search, CharSequence replacement) 在字符序列 text 中替换第一次出现的子串 search 为字符串 replacement。
- replace(CharSequence text, CharSequence search, CharSequence replacement) 在字符序列 text 中替换所有匹配到的子串 search 为字符串 replacement。
- replaceChars(CharSequence str, char searchChar, char replaceChar) 将字符序列 str 中所有匹配到的 searchChar 替换成 replaceChar。
- overlay(CharSequence str, CharSequence overlay, int start, int end) 用字符序列 overlay 从 start 到 end 覆盖字符序列 str。
- leftPad(CharSequence str, int size, char padChar) 使用字符 padChar 在字符序列 str 左边填充至指定长度 size。
- rightPad(CharSequence str, int size, char padChar) 使用字符 padChar 在字符序列 str 右边填充至指定长度 size。
- center(CharSequence str, int size, char padChar) 在字符序列 str 两端填充字符 padChar,使其长度为 size。
- repeat(CharSequence str, int repeat) 将字符序列 str 重复 repeat 次。
- reverse(CharSequence str) 反转字符序列 str。
- abbreviate(CharSequence str, int maxWidth) 缩略字符序列 str,使其长度不超过 maxWidth。
- wrap(CharSequence str, int wrapLength) 将字符序列 str 按照 wrapLength 长度进行换行。
- wrap(CharSequence str, String wrapMarker, int wrapLength) 将字符序列 str 以 wrapMarker 为标记,按照 wrapLength 长度进行换行。
总结:StringUtils 类提供了丰富的字符串处理方法,可以方便地对字符串进行操作和处理。其中,常用方法包括:isEmpty、isBlank、trim、equals、contains、indexOf、substring、replace 等等。
左侧补齐(leftPad)、右侧补齐(rightPad)、左右两侧补齐(center)工具方法
//左侧补齐 第一个参数:原始字符串,第二个参数:字符串的长度,第三个是补充的字符串
String newStr1 = StringUtils.leftPad("oldStr1", 10, "*");
System.err.println(newStr1);//***oldStr1
//获取字符串左侧指定长度的字符串,第一个参数:原字符串,第二个参数:取左侧字符串的长度
String newStr2 = StringUtils.left("oldStr3", 5);
System.err.println(newStr2);//oldSt
//左侧补齐,默认使用空格补齐,第一个参数:原字符串,第二个参数:字符串总长度,不足用空格补全
String newStr3 = StringUtils.leftPad("oldStr4", 10);
System.err.println(newStr3);// oldStr4
//左侧补齐 第一个参数:原始字符串,第二个参数:字符串的长度,第三个是补充的字符串
String newStr4 = StringUtils.center("oldStr1", 10, "*");
System.err.println(newStr4);//*oldStr1**