String.split的缺陷

来源:互联网 发布:网络平台服务合同 编辑:程序博客网 时间:2024/05/16 10:38

缺陷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:

有待发现