apache-commons-lang3之StringUtils使用集锦
2021-04-12 07:26
标签:fse case nal 前言 span 自带 方法 final oem StringUtils是处理字符串的工具类, String类实现CharSequence接口,为兼容不同实现类,StringUtils在处理字符串的传参为CharSequence类型 判定是否为空,包括是否为null,空串,空格字符串等,同时传参时区分单一参数与不定长参数集,其中empty结尾的函数校验null和空串,blank加上了对于空格字符串一类的无意义字符串的校验. StringUtils.trim(final String str){} 字符串修建函数trim()在String类自带trim函数的基础上,新增了对于null的支持,传参为null返回null,非空字符串的操作即去除首尾空格的一般操作,并基于此衍生除两个函数trimToNull -- 空串返回null 和 trimToEmpty -- null返回空串. 截取函数truncate基于String类的substring方法实现,变更了传参逻辑,String类的substring函数传参起始索引与终止索引,StringUtils工具类的truncate函数则传参根字符串/起始索引(偏移量)/截取长度,更多了一种截取选择,适应不同的使用场景,源码如下: strip函数与trim函数同属于字符串修剪方法实现, 不同在于trim处理字符串,strip可以对具体字符进行首尾的修剪,核心还是String类的substring函数,核心代码位于stripStart和stripEnd函数. 比较字符串是否相等,核心是CharSequenceUtils.regionMatch函数,逐字符比较,可区分大小写,出现不同即返回,包括equals和equalsIgnoreCase两种实现,以及拓展的对于不定长参数集equalsAny/equalsAnyIgnoreCase的支持. 比较两个字符串,可区分大小写,核心逻辑为String.compareTo函数, 比较编码大小,返回第一个不同的差值,相同则返回0,整体业务逻辑类似equals,同时包含对于空参的支持,具体实现为compare和compareIgnoreCase 获取字符串中子串索引,核心逻辑为CharSequenceUtils.indexOf(seq, searchChar, startPos)函数,此处包含场景比较多,包括从字符串起始位置/指定位置,顺序查找/逆序查找,简列如下: 字符串参数间的包含关系 apache-commons-lang3之StringUtils使用集锦 标签:fse case nal 前言 span 自带 方法 final oem 原文地址:https://www.cnblogs.com/nyatom/p/12401418.htmlapache-commons-lang3之StringUtils使用集锦
一.前言
1.CharSequence
二.方法
1.判定是否为空
2.trim函数
3.truncate函数
public static String truncate(final String str, final int offset, final int maxWidth) {
if (offset ) {
throw new IllegalArgumentException("offset cannot be negative");
}
if (maxWidth ) {
throw new IllegalArgumentException("maxWith cannot be negative");
}
if (str == null) {
return null;
}
if (offset > str.length()) {
return EMPTY;
}
if (str.length() > maxWidth) {
final int ix = offset + maxWidth > str.length() ? str.length() : offset + maxWidth;
return str.substring(offset, ix);
}
return str.substring(offset);
}
4.strip函数
public static String stripStart(final String str, final String stripChars) {
int strLen;
if (str == null || (strLen = str.length()) == 0) {
return str;
}
int start = 0;
if (stripChars == null) {
while (start != strLen && Character.isWhitespace(str.charAt(start))) {
start++;
}
} else if (stripChars.isEmpty()) {
return str;
} else {
while (start != strLen && stripChars.indexOf(str.charAt(start)) != INDEX_NOT_FOUND) {
start++;
}
}
return str.substring(start);
}
public static String stripEnd(final String str, final String stripChars) {
int end;
if (str == null || (end = str.length()) == 0) {
return str;
}
if (stripChars == null) {
while (end != 0 && Character.isWhitespace(str.charAt(end - 1))) {
end--;
}
} else if (stripChars.isEmpty()) {
return str;
} else {
while (end != 0 && stripChars.indexOf(str.charAt(end - 1)) != INDEX_NOT_FOUND) {
end--;
}
}
return str.substring(0, end);
}
5.equals函数
6.compare函数
7.indexOf函数
indexOf(final CharSequence seq, final int searchChar / final CharSequence serchSeq)
-- 获取字符(编号)位于字符串起始开始的第一个位置索引indexOf(final CharSequence seq, final int searchChar / final CHarSequence searchSeq, final int startPos)
-- 获取字符(编号)位于字符串指定起始位置开始的第一个位置索引8.contains函数
文章标题:apache-commons-lang3之StringUtils使用集锦
文章链接:http://soscw.com/index.php/essay/74611.html