Java 通过读取一次文本文件,将文本文件中的字符指定给二维数组
编辑我是个白痴。我意识到我可以将整个文本文件作为一个字符串读取,然后根据需要对该字符串进行操作(这将满足一次性读取文本文件的要求)。 我想在提出一个更简单的问题时,如何将文本文件的内容转换为一个大的“ole字符串”?我现在只是在放屁 这个标题很好地说明了这个困境。这是我完成的代码。 这不是全部代码,但通常与我的问题相关。 目前,我需要在文本文件中读取2次,第一次实例化theMaze属性的维度,第二次扫描程序将字符分配到数组中的相应位置。考虑到你需要知道文本文件中内容的空间,我不明白你怎么能一次读取文件中的内容。 任何帮助都将不胜感激! 另外,如果你需要我,我很乐意具体说明。问吧Java 通过读取一次文本文件,将文本文件中的字符指定给二维数组,java,arrays,2d,Java,Arrays,2d,编辑我是个白痴。我意识到我可以将整个文本文件作为一个字符串读取,然后根据需要对该字符串进行操作(这将满足一次性读取文本文件的要求)。 我想在提出一个更简单的问题时,如何将文本文件的内容转换为一个大的“ole字符串”?我现在只是在放屁 这个标题很好地说明了这个困境。这是我完成的代码。 这不是全部代码,但通常与我的问题相关。 目前,我需要在文本文件中读取2次,第一次实例化theMaze属性的维度,第二次扫描程序将字符分配到数组中的相应位置。考虑到你需要知道文本文件中内容的空间,我不明白你怎么能一次读
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
public class maze {
private char[][] theMaze; // Will represent the maze
private int colStart, rowStart; // Location of the ‘S’ symbol in the maze
private int rows, cols; // Number of rows and cols in the maze
public maze(String filename) throws IOException{
this.cols = 0;
this.rows = 0;
File Maze = new File(filename);
Scanner input = new Scanner(Maze);
for(rows = 0; input.hasNext() == true; rows++){
String line = input.nextLine();
cols = line.length();
}
this.theMaze = new char[rows][cols];
String[] data = new String[rows];
Scanner inputAgain = new Scanner(Maze);
for(int i = 0; i < rows; i++){
data[i] = inputAgain.nextLine();
for(int j = 0; j < cols; j++){
char placeholder = data[i].charAt(j);
theMaze[i][j] = placeholder;
}
}
findStart();
boolean yes = solve(rowStart, colStart);
print(yes);
}
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.IOException;
导入java.util.Scanner;
公共类迷宫{
private char[][]theMaze;//将表示迷宫
private int colStart,rowStart;//迷宫中“S”符号的位置
private int rows,cols;//迷宫中的行数和列数
公共迷宫(字符串文件名)引发IOException{
这是0.cols=0;
这是0.rows=0;
文件迷宫=新文件(文件名);
扫描仪输入=新扫描仪(迷宫);
for(rows=0;input.hasNext()==true;rows++){
String line=input.nextLine();
cols=line.length();
}
this.theMaze=新字符[行][cols];
字符串[]数据=新字符串[行];
扫描仪输入增益=新扫描仪(迷宫);
对于(int i=0;i
您可以使用列表来存储字符。这是一个
关于您的编辑,您可以像这样读取字符串中的整个文件
String data = new Scanner(new File(filename)).useDelimiter("\\Z").next();
这使得扫描器使用\Z
作为分隔符,它是字符串的结尾,并将整个文件作为一个标记来读取。我在某处学会了这个方法,归功于原始作者。哇。快速响应。谢谢。不过,我实际上刚刚学会了链表。我不想偷懒,但我宁愿避免那个方法od加在一起。这可能更简单。我如何扫描文本文件一次,并将数据引用为一个字符串?谢谢!还有更快的第二次响应。让我试试,我会回到yaWell,这是一个漂亮的java技巧。一切都很好。再次感谢。@BradleyHall-如果它解决了您的问题,您可以接受答案。