如何将文本文件读入2D字符数组?

时间:2015-10-19 05:42:20

标签: java arrays char 2d

我正在开展一个学校项目,其目标是获取一个包含迷宫"#","的文本文件。 "," E"和" S"通过这个迷宫找到你的方式。在赋值中,它要求我获取文件并将每个行和列放入2D char数组中。

以下是文件外观的示例(" S"是我开始的地方" E"是我结束的地方):

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

我考虑过使用一对循环来寻找迷宫的高度并将其添加到迷宫中#" y"零件。然后取每个增量的" x"并将其放入数组中以获取它的char值并读取第二个y来找到它们的#34;#"找到宽度。但是我到目前为止还没有正确实现它。你对如何解决这个问题有什么想法吗?到目前为止,我还没能在网上找到它。还要重申我需要char值,以便#34;#"," ",或" E"和" S"在我的2D字符数组中的正确x和y坐标中。

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

3 个答案:

答案 0 :(得分:1)

您可以将这些行读入字符串列表,然后一旦知道了数组的y维,就可以创建2d数组并用以下内容填充:

Char [] array = line.toCharArray();

答案 1 :(得分:1)

将文件内容读入字符串。使用x,y - >坐标的索引转换。访问此字符串的字符,就像2D数组中的字符一样。 See a solution to the problem "Using an array of Strings to create a 2D (map) array in Java"

答案 2 :(得分:0)

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

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

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

public class board {

    ArrayList a<Square>;
}

public class Square {

    int x;
    int y;
    String value;
}

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