代码之家  ›  专栏  ›  技术社区  ›  trolologuy

用Java打印二维数组(通过拆分生成)

  •  0
  • trolologuy  · 技术社区  · 11 年前

    所以解决了 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()];
    

    这就是我填充&打印二维数组:

    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 回复  |  直到 8 年前
        1
  •  3
  •   user2110286 user2110286    11 年前

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

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

        2
  •  0
  •   Brinnis    11 年前

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

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

    您想要迭代 index[j] 不是 data .