首页 > 解决方案 > txt 文件到二维数组

问题描述

我应该从填充了 15 个 X 和 O 的 .txt 文件中转换我的第二行,并将其打印到 java 中的二维数组上。

这是我的 .txt 文件中的一维数组。

XOXOX
XOOXX
XXXOO
XXOOO
XXXXO
OOOOX
XOOXX
OOXXO
OXOXO
OXXXO
public static void main(String[] args) throws FileNotFoundException {
    Scanner in = new Scanner(System.in);
    System.out.print("Enter the input filename ");
    String inputFile = in.next();
    Scanner inFile = new Scanner(new File(inputFile));
    String line=inFile.nextLine();
    line.toUpperCase();
    String array[] = line.split("X");
    System.out.println(array[0]+  " " + array [1]);
    String arrayE1 = array[0];
    String arrayE2 = array[1];
    Integer.parseInt(arrayE1);
    Integer.parseInt(arrayE2);
    String line2 = inFile.next();
    System.out.println(line2);

    char [][] MovieTheater = new char [Integer.parseInt(arrayE1)][Integer.parseInt(arrayE2)];

    int k = 0;
    for (int i = 0; i < Integer.parseInt(arrayE1); i++) {
        for (int j = 0; i < Integer.parseInt(arrayE2); j++) {
            MovieTheater[i][j] = line2.charAt(k++);
        }
        System.out.println("");
    }
    inFile.close();
}

标签: java

解决方案


您可以使用Files.lines()读取文件中的所有行并String.toCharArray()从每一行获取所有字符:

try (Stream<String> lines = Files.lines(Paths.get(inputFile))) {
    char[][] movieTheater = lines
            .map(String::toCharArray)
            .toArray(char[][]::new);
    System.out.println(Arrays.deepToString(movieTheater));
}

结果将是这个二维数组:

[
    [X, O, X, O, X], [X, O, O, X, X], 
    [X, X, X, O, O], [X, X, O, O, O], 
    [X, X, X, X, O], [O, O, O, O, X], 
    [X, O, O, X, X], [O, O, X, X, O], 
    [O, X, O, X, O], [O, X, X, X, O]
]

推荐阅读