繁体   English   中英

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

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

我正在一个学校项目上,目标是获取一个包含迷宫字符“#”,“”,“ E”和“ S”的文本文件,并找到通过该迷宫的方法。 在作业中,要求我获取文件并将每一行和每一列放入2D char数组中。

这是文件外观的示例(“ S”是我开始的位置,“ E”是我结束的位置):

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

我考虑过使用一对while循环来查找迷宫的高度并将其添加到“ y”分量中。 然后将“ x”的每个增量取其char值放入数组中,并读取第二个y来找到两个“#”以找到宽度。 但是到目前为止,我还没有正确实现它。 您对如何解决此问题有任何想法吗? 到目前为止,我还无法在线找到它。 还要重申一下,我需要char值,以便在我的2D char数组中正确的x和y坐标中使用“#”,“”或“ E”和“ S”。

我还将提供我所拥有的代码,但我认为这是作弊的,作为学生,我也想学习其内容。 因此,仅凭想法和一些示例就可以了。

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

Char [] array = line.toCharArray();

将文件内容读入字符串。 使用x,y->索引转换作为坐标。 就像在2D数组中的字符一样访问此字符串的字符。 请参阅“使用字符串数组在Java中创建2D(映射)数组”问题的解决方案

就我个人而言,我要做的是将其分成一个板,并有一个板对象。 板上的对象有多个正方形对象。 将其视为棋盘。

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

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

public class board {

    ArrayList a<Square>;
}

public class Square {

    int x;
    int y;
    String value;
}

然后,您可以阅读文本文件并构建板。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM