在Java中打印二维数组(使用拆分生成)

时间:2013-08-27 15:26:19

标签: java multidimensional-array indexoutofboundsexception

所以解决了this problem但是现在,在我弄清楚如何将我的String拆分成数组之后,我希望这个数组是二维的。 当我想要打印第二个维度时,我会收到

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()];

这就是我填写的方式。打印bidimensionnal数组:

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

2 个答案:

答案 0 :(得分:2)

使用index[j].length代替data.length()

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

答案 1 :(得分: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的每个部分。