在实际使用commons-lang中的StringUtils类里的一些方法时我发现,它们最终得到的结果是和jdk中java.lang.String下的同名方法得到的结果不一样,例如:
(1)jdk里的 String replaceAll(String regex, String replacement) 方法,如果String regex中含有带有“/”的字符串,该方法将自动剔除掉“/”,因为它会把“/”当作类似处理/n或/r等特殊标记,而commons-lang中的StringUtils类里的replace(String text, String repl, String with) 方法则会保留
(2)jdk里的split(String regex)方法会严格地按照String regex给的字符串分割,比如"adbc#d#efdg".split("#d#"),会被分割为"adbc","efdg"两个字符串放入String[]里,而在commons-lang中的StringUtils类里的split(String str, String separatorChars),则会被分割为"a","bc","ef","g"四个字符串放入String[]里,如要实现jdk里的split分割的效果则应该使用splitByWholeSeparator(String str, String separator) 方法。
因此我们在使用commons-lang中的StringUtils类里的方法是一定要仔细。