将字符串拆分为字符串数组不能正常工作

时间:2015-12-23 14:27:10

标签: java string split

for (int k = 0; k < dec2.length; k++) {
    System.out.println(dec2[k]);
    String[] tab = dec2[k].split(",");
    System.out.println(tab[0]);

当我尝试这段代码时,dec2是一个String数组,包含:

  

41,31
  11,21
  42,41
  12,22

当我尝试显示tab[0]时,我会收到第一个号码(在&#34;,&#34;之前),但tab[1]会返回ArrayIndexOutOfBoundsException,我不会#39; t得到原因,因为它应该包含第二个数字(在&#34;,&#34;之后)。

2 个答案:

答案 0 :(得分:1)

String[] dec2 = new String[] {"41,31", "11,21", "42,41", "12,22"};
for(int k = 0 ; k < dec2.length ; k++) {

    System.out.println(dec2[k]);
    String[] tab = dec2[k].split(",");


    System.out.println(tab[0]);
    System.out.println(tab[1]);
}

我得到了这个输出:

41,31
41
31
11,21
11
21
42,41
42
41
12,22
12
22

Process finished with exit code 0

没有例外。

您可以在按索引获取元素之前尝试che tab.length,或使用forEach循环:

for(int k = 0 ; k < dec2.length ; k++) {

    System.out.println(dec2[k]);
    String[] tab = dec2[k].split(",");

    for (String part : tab) {
        System.out.println(part);
    }
}

答案 1 :(得分:0)

试试这个解决方案:

  for(int k = 0 ; k < dec2.length ; k++){

        System.out.println(dec2[k]);
        String [] tab = dec2[k].split(",");
        for (String string : tab) {
            System.out.print(string+" ");
        }
        System.out.println();

}

我创建了一个foreach循环来迭代数组tab以提取这两个数字:

  for (String string : tab) {
            System.out.print(string+" ");
        }

输出:

41,31
41 31
11,21
11 21
42,41
42 41
12,22
12 22 

如果您想使用exact index试试这个,您将获得相同的输出:

 for(int k = 0 ; k < dec2.length ; k++){

        System.out.println(dec2[k]);
        String [] tab = dec2[k].split(",");
            System.out.print(tab[0]+" ");
            System.out.print(tab[1]);
        System.out.println();

    }