从Java中的另一个文件调用2D数组

时间:2014-07-15 04:01:40

标签: java arrays

我正在尝试从文件中获取2D数组并进入我的程序。我不确定2D数组的大小是多少,必须按降序排序。如果我在我的代码中输入一个示例数组,那么for语句就可以完美地执行。我最大的挫败感是从另一个文件中获取一个2D数组并让我的代码运行并执行它。任何人都可以帮我这个..

代码:

public class Project2 {
public static void main(String[] args) throws Exception {
  Scanner sc = new Scanner(new File("prog2.txt"));
  int number = 0;
  while (sc.hasNext()) {
    sc.nextLine();
    number++;
  }
  System.out.println(number);

这就是我需要的文件。这会显示有的行数。

代码:

for (int i = 0; i < hours.length; i++) {
  int sum = totalHours(hours, i);
  System.out.println("Employee " + i + ": " + sum);
  }
}

这是for语句,只要我手动输入2D数组的数字,就能很好地执行。

我正在尝试从文件中获取数字来运行此for语句。我对如何做到完全感到困惑,而且我已经坚持了好几个小时了。非常感谢你们所有的帮助!

1 个答案:

答案 0 :(得分:0)

希望这可以帮助你。

java文件

public class ReadFile {
    public static void main(String[] args) throws FileNotFoundException {
        Scanner sc = new Scanner(new File("./assets/prog2.txt"));
        int[][] storedArray = new int[3][3];
        int i = 0, j = 0;
        while (sc.hasNext()) {
            String line = sc.nextLine();
            String[] rows = line.split(":");
            for (String row : rows) {
                String[] cells = row.split("~");
                j = 0;
                for (String cell : cells) {
                    // System.out.println(cell);
                    storedArray[i][j] = Integer.parseInt(cell);
                    j++;
                }
                i++;
            }
            for (int[] p : storedArray) {
                System.out.println(Arrays.toString(p));
            }
        }
    }
}

<强> prog2.txt

1~2~3:4~5~6:7~8~9

项目目录structire

  project
    |---src--javafile
    |
    |---assets---prog2.txt

<强>假设

  1. 〜是我们​​想要在同一行中分离2-D数组中的两个元素时使用的分隔符。
  2. :当我们想要在2-D数组中分隔两行时使用分隔符。
  3. 对于此示例,2-D阵列的大小限制为3x3。对于灵活的大小,需要添加在运行时检查。
  4. <强>输出

    [1, 2, 3]
    [4, 5, 6]
    [7, 8, 9]