如何有效地从String解析为Integer [] [] []?

时间:2019-11-19 19:47:48

标签: java arrays multidimensional-array

我使用的文件通常是以下形式:

  

{0 0},{0 0}

     

{0 0 0 0},{0 0 0 0},{0 0 0 0},{0 0 0 0}

所以我需要一个Integer[][][]来存储矩阵数组。

我尝试过:

  String path = "file.txt";
    String[] var = (String[]) Files.lines(Path.of(path)).toArray();
    for(String s:var) {
        String[] var2 = s.split(",");
    }

到那时,我意识到必须有一种更好的方式来阅读本文。我尝试使用streams,但不知道。

1 个答案:

答案 0 :(得分:0)

如果我理解您的问题,则第一行中的每一行对应于数组中的一个不同单元格,第二组维括号是第二维,而第三行括号中的整数是第三维。​​

这意味着您可以:

  1. 定义方法a(),该方法采用类似{1 2 3 4}的字符串,并返回带有这些数字的Integer []。
  2. 定义方法b(),该方法采用类似于{1 2 3},{4 5 6}的行,该行将,分割,并为每个令牌调用一次a(),然后返回一个{{1} }和所有Integer[][]结果
  3. 定义方法Integer[],该方法采用行数组,并为每行调用一次c(),然后返回填充了所有b()结果的Integer[][][]