有两个字符串
String a=",aaa,bbb,,,,,,,";
String b="d:/sc/zz,d:/cx/vv,,,d:/saa/cc,,,,,";
使用split进行截取后
String[] a1=a.split(",");
String[] b1=b.split(",");结果奇怪的问题出来了,用System.out.println();输出  a1.length为 4  b1.length为9
debug了一下发现在截取a之后赋值给a1数组的值为[,aaa,bbb]后面的","全被过滤掉了  
我想问的是 那么为什么b1得出的长度是正确的呢?很困惑 如何又能取到a的每一位数?包括后面的","之前的空位 求高人解答~ 

解决方案 »

  1.   


    String a=",aaa,bbb,,,,,,,";
    String b="d:/sc/zz,d:/cx/vv,,,d:/saa/cc,,,,,";
    System.out.println(a.split(",").length);
    System.out.println(b.split(",").length);输出结果3,5。表明最后的空白都舍去了。没出现你说的情况
      

  2.   

    这样做就可以了!在split(",",-1)就行了!
    代码如下:
    public static void main(String[] args) {
    String a=",aaa,bbb,,,,,,,";
    String b="d:/sc/zz,d:/cx/vv,,,d:/saa/cc,,,,,";
            String[] a1 = a.split(",", -1);
            String[] b1 = b.split(",",-1);
            for(int i = 0;i< a1.length; i ++){
             System.out.println(i+":"+a1[i]);
            
            }
            for(int j = 0;j< b1.length; j ++){
             System.out.println(j+":"+b1[j]);
            
            }
            System.out.println("a1的长度是:"+a1.length);
            
            System.out.println("b1的长度是:"+b1.length); }
      

  3.   

    输出的结果是:
    0:
    1:aaa
    2:bbb
    3:
    4:
    5:
    6:
    7:
    8:
    9:
    0:d:/sc/zz
    1:d:/cx/vv
    2:
    3:
    4:d:/saa/cc
    5:
    6:
    7:
    8:
    9:
    a1的长度是:10
    b1的长度是:10