我有一个 txt 文件,我正在尝试使用扫描仪类读取该文件。
我使用双 for 循环来读取文件并将其存储为二维数组。
该文件如下所示:
3 3 。 R# 。 。 # 。 。 #
第一行分别是二维数组的长度和宽度。
我得到了这个工作,它读取一个类似的txt文件,但它不是char而是像这样的int:
3 3 1 0 1 1 1 1 0 0 1
我在这里使用的方法如下所示:
readFile(String filename){
Scanner scan = new Scanner(new File(filename));
// read the first two numbers in the file for the size of the array
int numberRows = scan.nextInt();
int numberColumns = scan.nextInt();
char[][] grid = new char[numberRows][numberColums];
for (int i = 0; i < numberRows; i++) {
for (int j = 0; j < numberColumns; j++) {
grid[i][j] = scan.next().charAt(0);
}
}
}
我希望这与使用 char 而不是 int 时的工作方式相同。
但是我收到错误 当出现NoSuchElementException scan.next().charAt(0) 实际上运行尝试从 txt 文件中读取字符。
我想读取字符串而不是字符吗?我假设单个字符将被 java 扫描器类读取为字符。
最佳答案
Scanner.next()
始终返回一个String
。请查看https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html了解更多信息。在对 scan.next()
执行任何操作之前,例如scan.next().charAt(0)
,您应该检查if (scan.hasNext())
条件。
关于java - 使用扫描仪从txt文件中读取字符并添加到二维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58792226/