从Arraylist拆分字符串(java)

时间:2012-04-13 15:47:20

标签: java arraylist split arrays

修复!谢谢大家!

好的,所以我不确定为什么这会给我一个ArrayIndexOutOfBoundsException ..

al是一个具有以下值的arraylist:

2,6,m
1,7,w   
5,3,c   
0,4,w
1,6,w
2,3,w
1,5,w

这是我尝试获取每个arraylist索引的地方,将其拆分为:row,col,letter。 据说temp [2]是不合时宜的。为什么?我的意思是分裂方法应该分为3个部分,0,1和2.那么为什么2给我适合。我运行了一些测试,它还为temp [0]和temp [1]调用提供了outofbounds。

    for (int i = 0; i < al.size(); i++) {
        String[] temp = al.get(i).toString().split(",");
        System.out.println(temp.length);
        System.out.println(temp[1]);
        if (temp[2].equals("m")) {
            boardTiles[Integer.parseInt(temp[0])][Integer.parseInt(temp[1])].setIcon(mousetile);
            boardTiles[Integer.parseInt(temp[0])][Integer.parseInt(temp[1])].putClientProperty("mouse", true);
        }
        if (temp[2].equals("c")) {
            boardTiles[Integer.parseInt(temp[0])][Integer.parseInt(temp[1])].setIcon(cheesetile);
            boardTiles[Integer.parseInt(temp[0])][Integer.parseInt(temp[1])].putClientProperty("cheese", true);
        }
        if (temp[2].equals("w")) {
            boardTiles[Integer.parseInt(temp[0])][Integer.parseInt(temp[1])].setIcon(metalwall);
            boardTiles[Integer.parseInt(temp[0])][Integer.parseInt(temp[1])].putClientProperty("wall", true);
        }
    }

我使用String []和split方法有什么不对吗? 谢谢, -Austin

编辑:

我刚刚在arraylist上运行了一个for循环,所有值都在那里。

boardTiles [x] [x]是JButton的二维数组。

索引发生异常:1。

.length显示为1。

2 个答案:

答案 0 :(得分:2)

boardTiles可能没有输入数组中定义的某些值的大小。

答案 1 :(得分:0)

执行al.get(i)的打印并仔细检查它是否确实是逗号分隔的值字符串。