(十四)Java工具类StringUtils剔除字符串末回车换行符(\r\n)chomp、chop详解
参考地址:http://commons.apache.org/proper/commons-lang/javadocs/api-release/
1. chomp剔除字符串最后一个是\n或\r\或\r\n源码详解
public static String chomp(String str){if (isEmpty(str)) {return str;}if (str.length() == 1) {char ch = str.charAt(0);if ((ch == '\r') || (ch == '\n')) {return "";}return str;}int lastIdx = str.length() - 1;char last = str.charAt(lastIdx);if (last == '\n') {if (str.charAt(lastIdx - 1) == '\r') {lastIdx--;}} else if (last != '\r') {lastIdx++;}return str.substring(0, lastIdx);}
源码分解:如上代码可以分析chomp方法将会剔除掉字符串末的\n、\r、\r\n(换行、回车、回车换行符);
官网demo如下:
StringUtils.chomp(null) = nullStringUtils.chomp("") = ""StringUtils.chomp("abc \r") = "abc "StringUtils.chomp("abc\n") = "abc"StringUtils.chomp("abc\r\n") = "abc"StringUtils.chomp("abc\r\n\r\n") = "abc\r\n"StringUtils.chomp("abc\n\r") = "abc\n"StringUtils.chomp("abc\n\rabc") = "abc\n\rabc"StringUtils.chomp("\r") = ""StringUtils.chomp("\n") = ""StringUtils.chomp("\r\n") = ""
2.chop剔除字符串最后一个字符(如果最后一个是\n或\r\或\r\n也剔除掉)源码详解
public static String chop(String str)
{ if (str == null) { return null; } int strLen = str.length(); if (strLen < 2) { return ""; } int lastIdx = strLen - 1; String ret = str.substring(0, lastIdx); char last = str.charAt(lastIdx); if ((last == '\n') && (ret.charAt(lastIdx - 1) == '\r')) { return ret.substring(0, lastIdx - 1); } return ret;
}
官网demo如下:
StringUtils.chop(null) = nullStringUtils.chop("") = ""StringUtils.chop("abc \r") = "abc "StringUtils.chop("abc\n") = "abc"StringUtils.chop("abc\r\n") = "abc"StringUtils.chop("abc") = "ab"StringUtils.chop("abc\nabc") = "abc\nab"StringUtils.chop("a") = ""StringUtils.chop("\r") = ""StringUtils.chop("\n") = ""StringUtils.chop("\r\n") = ""
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
