(十四)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")        = ""


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部