0

编辑我是个白痴。我意识到我可以将整个文本文件作为一个字符串读取,然后尽可能多地操作该字符串(这将满足一次读取文本文件的要求)。我想在提出一个更简单的问题时,如何将文本文件的内容转换为一个大的 '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);
}
4

1 回答 1

0

您可以使用 aList<List<Character>>来存储字符。这是一个例子

关于您的编辑,您可以用这样的字符串读取整个文件..

String data = new Scanner(new File(filename)).useDelimiter("\\Z").next();

这使得扫描仪\Z用作字​​符串结尾的分隔符,并将整个文件作为单个标记读取。我在某处学习了这种方法,感谢原作者。

于 2013-05-12T02:20:00.737 回答