繁体   English   中英

Txt文件到2D数组

[英]Txt file to 2D array

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

这是我的.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();
}

您可以使用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));
}

结果将是这个2D数组:

[
    [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]
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM