如何将文本文件读入二维字符数组?

How do I read a text file into a 2D char array?

我正在做一个学校项目,objective 是获取一个包含“#”、“”、"E" 和 "S" 迷宫的文本文件角色并在这个迷宫中找到自己的出路。在作业中,它要求我获取文件并将每一行和每一列放入一个二维字符数组中。

这是文件的示例("S" 是我开始的地方,"E" 是我结束的地方):

##########
# S ######
## ####E##
## #### ##
#       ##
##########

我想过使用几个 while 循环来找到迷宫的高度并将其添加到它的 "y" 组件中。然后获取 "x" 的每个增量并将其放入数组中以获得它的 char 值并读取第二个 y 以找到两个“#”以找到宽度。但是我到目前为止还没有正确实施它。你对如何解决这个问题有什么想法吗?到目前为止,我还没有能够在网上找到它。另外重申一下,我需要 char 值,因此在我的 2D char 数组中正确的 x 和 y 坐标中的“#”、“”或 "E" 和 "S"。

我也会提供我的代码,但这会被视为作弊,作为一名学生,我也想学习这些内容。所以只是想法和一些例子会很好。

就我个人而言,我会做的是把它分成一个板,并有一个板对象。在棋盘对象上有许多方形对象。把它想象成一个棋盘。

  |  |
__|__|__
  |  |
__|__|__
  |  |
  |  |

每个方形对象都有一个 X、Y 值来表示它的位置,然后是方形的实际值(3、#、...等)

public class board {

    ArrayList a<Square>;
}

public class Square {

    int x;
    int y;
    String value;
}

然后您可以阅读您的文本文件并构建您的电路板。

您可以将这些行读入字符串列表,然后一旦您知道数组的 y 维度,您就可以创建二维数组并填充它:

Char[] 数组 = line.toCharArray();

将文件内容读入字符串。对坐标使用 x,y -> 索引变换。访问此字符串的字符,就像访问二维数组中的字符一样。 .