从文件中读取字符串.txt并将内容放入二维数组中



嗨,所以我应该从文本文件中读取行,然后输出 将数据放入 2D 数组中,我已经阅读了这些行,但我感到困惑 了解如何将内容输入到 2D 数组。

这是文件:

eoksibaebl
ropeneapop
mbrflaoyrm
gciarrauna
utmorapply    
wnarmupnke 
ngrelclene 
alytueyuei 
fgrammarib 
tdcebykxka

我的问题是如何将这些字符串放入 2d 数组中,如下所示。

public class WordFinder {
public static final int N = 10;
public static char[][] grid = new char[N][N];
public static final String GRID_FILE = "grid.txt";
public static void initGrid() {
try {
File file = new File(GRID_FILE);
Scanner scanner = new Scanner(file);
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
scanner.close();
}
catch (FileNotFoundException e) {
System.out.println("File not found.");
}
}

我对 JAVA 很陌生,所以任何帮助都会得到很多帮助!

下面是对代码的快速修改,以使其正常工作。将一行读取为字符串,然后迭代字符串中的字符并将它们放在char[][]数组中。

import java.util.*;
import java.io.*;
public class WordFinder {
public static final int N = 10;
public static char[][] grid = new char[N][N];
public static final String GRID_FILE = "grid.txt";
public static void initGrid() {
try {
File file = new File(GRID_FILE);
Scanner scanner = new Scanner(file);
for (int i = 0; scanner.hasNext(); i++) {
String line = scanner.next();
for (int j = 0; j < N; j++) {
grid[i][j] = line.charAt(j);
}
}
scanner.close();
}
catch (FileNotFoundException e) {
System.out.println("File not found.");
}
}
public static void main(String[] args) {
initGrid();
for (char[] row : grid) {
for (char cell : row) {
System.out.print(cell);
}
System.out.println();
}
}
}

输出:

eoksibaebl
ropeneapop
mbrflaoyrm
gciarrauna
utmorapply
wnarmupnke
ngrelclene
alytueyuei
fgrammarib
tdcebykxka

不过要小心:此设计可能会在 10x10 字符网格以外的输入文件上崩溃。 考虑使用 ArrayList 来动态匹配文本文件的大小,或者至少可以添加到错误处理中:

catch (FileNotFoundException | ArrayIndexOutOfBoundsException e) {
System.out.println("Something terrible happened.");
System.exit(1);
}

最新更新