缺陷1:
场景:
对于一个字符串“A:B:C::”,期望以冒号分割得到长度为4的字符串数组。
使用jdk的split,以冒号分割,得到一个字符串数组,这个数组只有三个元素。
这在某种程度上说是一种过度操作,因为有时我们想获得第三个冒号之后的元素。
替代方案:
使用apache的StringUtils工具类。
StringUtils.splitPreserveAllTokens可以完成场景中的需求
//以下例子可以帮助理解
String line = "A:B:c:::";
String[] words = line.split(":");
//System.out.println(words[3]);//java.lang.ArrayIndexOutOfBoundsException: 3
System.out.println(words.length);
String[] words2 = StringUtils.splitPreserveAllTokens(line, ":");
for(int i = 0; i<words.length; i++)
System.out.println("words2["+i+"]="+words2[i]);
缺陷2:
有待发现