1

固定的!谢谢大家!

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

al 是一个数组列表,包含以下值:

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

这是我试图获取每个数组列表索引的地方,将其拆分为:行、列、字母。就是说 temp[2] 越界了。为什么?我的意思是拆分方法应该包含 3 个部分,0,1 和 2。那么为什么 2 适合我。我进行了一些测试,它还为 temp[0] 和 temp[1] 调用提供了出界。

    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);
        }
    }

我是在使用带有 split 方法的 String[] 错误还是什么?谢谢,-奥斯汀

编辑:

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

boardTiles[x][x] 是一个二维 JButton 数组。

索引发生异常:1。

.length 也显示为 1。

4

2 回答 2

2

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

于 2012-04-13T15:52:41.537 回答
0

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

于 2012-04-13T16:02:51.687 回答