您的位置:首页 > 编程语言 > Java开发

(十三)Java工具类StringUtils中strip、stripStart、stripEnd剥离方法源码详解

2018-01-26 10:50 411 查看
1. strip方法源码解析

public static String strip(String str)
{
return strip(str, null);
}


源码解析:调用strip方法,参数是字符串str、剥离的字符是null;该方法主要的作用就是去除掉字符串两边的空白符,跟trim(Stirng str)的方法一样;

public static String strip(String str, String stripChars)
{
if (isEmpty(str)) {
return str;
}
str = stripStart(str, stripChars);
return stripEnd(str, stripChars);
}


 public static String strip(String str, String stripChars)
{
if (isEmpty(str)) {
return str;
}
str = stripStart(str, stripChars);
return stripEnd(str, stripChars);
}


源码详解:该方法首先会判断字符串是否是空串,如果是直接返回空串(null或者“”或者tab键),false,会调用去除字符串start部分的空串和要剥离的字符方法,然后调用去除字符串end部分的空串和要剥离的字符方法;

public static String stripStart(String str, String stripChars)
{
int strLen;
if ((str == null) || ((strLen = str.length()) == 0))
return str;
int strLen;
int start = 0;
if (stripChars == null) {
while ((start != strLen) && (Character.isWhitespace(str.charAt(start))))
start++;
}
if (stripChars.isEmpty()) {
return str;
}
while ((start != strLen) && (stripChars.indexOf(str.charAt(start)) != -1)) {
start++;
}

return str.substring(start);
}


源码详解:stripChars为null,会使用Character.isWhitespace剥离start和end处的空白符,stripChars为空串直接返回空串,stripChars不为空取到要剥离字符后的字符串的开始索引位置,并返回字符串;

public static String stripEnd(String str, String stripChars)
{
int end;
if ((str == null) || ((end = str.length()) == 0)) {
return str;
}
int end;
if (stripChars == null) {
while ((end != 0) && (Character.isWhitespace(str.charAt(end - 1))))
end--;
}
if (stripChars.isEmpty()) {
return str;
}
while ((end != 0) && (stripChars.indexOf(str.charAt(end - 1)) != -1)) {
end--;
}

return str.substring(0, end);
}


源码详解:stripChars为null,会使用Character.isWhitespace剥离start和end的空白符,stripChars为空串直接返回空串,stripChars不为空取到要剥离的字符后字符串的结束索引位置,并返回字符串;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐