编辑我是个白痴。我意识到我可以在整个文本文件中读取一个字符串,然后根据需要操作该字符串(这将满足在文本文件中读取一次的要求)。 我想在提出一个更简单的问题时,我怎么能将文本文件的内容转换成一个大的'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);
}
答案 0 :(得分:0)
您可以使用List<List<Character>>
存储字符。这是example。
关于你的编辑,你可以用这样的字符串读取整个文件..
String data = new Scanner(new File(filename)).useDelimiter("\\Z").next();
这使得扫描程序使用\Z
作为字符串结尾的分隔符,并将整个文件作为单个标记读取。我在SO的某处学到了这种方法,归功于原始作者。