使用java中的内置字符串初始化多维数组

时间:2016-05-24 09:39:46

标签: java multidimensional-array

我有一个类似的字符串:

String someString=[[((2016, 5, 21, 2, 0, 0), (2016, 5, 23, 7, 0, 0)), [('TASK1', 'DONE'), ('TASK2', 'DONE'), ('TASK3', 'DONE'), ('TASK4', 'DONE'), ('TASK5', 'DONE')]]]

我想使用此字符串初始化多维数组,以便我可以使用索引检索值:

array[0]应该((2016, 5, 21, 2, 0, 0), (2016, 5, 23, 7, 0, 0)) array[0][1]应该(2016, 5, 23, 7, 0, 0)等等。

在python中,我能够使用eval函数轻松完成,但不知道如何在Java中完成它。

1 个答案:

答案 0 :(得分:0)

您正在寻找的东西似乎是一个三维数组。通过添加三个方括号来声明数组,并使用花括号表示每个数组的结尾。例如:

String someString [][][] = {
            {{"2016", "5", "21", "2", "0", "0"},{"2016", "5", "23", "7", "0", "0"}},
            {{"TASK1", "DONE"}, {"TASK2", "DONE"}}
            };

在这种情况下,someString [0] [0] [0]将是2016年,someString [1] [1] [0]将是TASK2等。

在java中显示数组比python稍微复杂一些,其中标准方法是使用多个for循环来遍历每个数组。例如:

        for (int h=0; h<someString.length; h++){
        for (int i=0; i<someString[h].length; i++){
            System.out.print(someString[h][i][0] + "\t");
            for (int j=0; j<someString[h][i].length; j++){
                System.out.print(someString[h][i][j]+"\t");
            }
            System.out.println();
        }
    }