0

所以解决了这个问题,但是现在,在我弄清楚如何将我的字符串拆分成一个数组之后,我希望这个数组是二维的。当我想打印我收到的第二个维度时

java.lang.ArrayIndexOutOfBoundsException: 17
at IOControl.ReadCsvFile.fillIndex(ReadCsvFile.java:17)
at IOControl.ReadCsvFile.<init>(ReadCsvFile.java:89)
at en.window.Main.main(Main.java:48)

我发现这是因为我在数组中读得太远了……但是为什么呢?我的数组声明:

        String index[][] = new String [data.length()][data.length()];

这就是我填充和打印双向数组的方式:

private void fillIndex(String[][] index, String data, int j)
{
    //index is empty, data is my String (read line by line)
    //j is the iterator i use for the second dimension of the array
    index[j] = data.split(";");
    for(int i = 0; i < data.length(); i++)
    {
        System.out.println("[" +j+ "][" +i+ "] = " +index[j][i]);           
    }
}
4

2 回答 2

3

使用index[j].length而不是data.length().

项目数为index[j].length = data.split(";").length

于 2013-08-27T15:31:31.457 回答
0

我的猜测是它在 for 循环中,尝试将其更改为:

index[j] = data.split(";");
for(int i = 0; i < index[j].length; i++)
{
    System.out.println("[" +j+ "][" +i+ "] = " +index[j][i]);           
}

您想遍历index[j]NOT的每个部分data

于 2013-08-27T15:35:23.390 回答