美好的一天,
我正在尝试使用扫描仪读取txt文件,并将字符保存到二维字符串数组中。 txt文件由8行字符组成,不以空格分隔。如果它们由空格分隔,或者(包括分隔符)如果字符全部在一行中,则我的程序可以工作(如果删除分隔符)。
如果有人能告诉我如何正确保存字符,我将不胜感激。问题出在 Read() 函数中,带有双 for 循环。我尝试添加另一个分隔符 (s.useDelimiter(s.nextLine())) 但我不知道如何实现它。
请记住,这是我第一次使用文件扫描仪,而且我只是在学习编程,因此我的代码不会很高级。
亲切的问候, 马修
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class BoardFile {
String[][] board = new String[8][8];
Scanner s;
// Print the board
public void Printboard() {
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
System.out.print(board[i][j]);
}
System.out.println();
}
}
public void Open() {
try {
s = new Scanner(new File("**TXT FILE PATHNAME HERE**"));
} catch (FileNotFoundException e) {
System.out.println("Error");
}
}
public void Read() {
s.useDelimiter("");
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
String a = s.next();
board[i][j] = a;
}
}
}
public static void main(String[] args) {
BoardFile a = new BoardFile();
a.Open();
a.Read();
a.Printboard();
}
}
txt文件: https://www.dropbox.com/s/k8fkneg2dcw0cbe/abcde.txt?dl=0
最佳答案
使用扫描仪的 nextline() 和 split() 函数将结果读入二维数组
public void Read() {
for (int i = 0; i < 8; i++) {
board[i]= s.nextLine().split("");
}
}
关于java - 在扫描仪中使用分隔符;忽略空格和换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52025051/