【问题标题】:How do I read a text file into a 2D char array?如何将文本文件读入二维字符数组?
【发布时间】:2016-01-17 09:11:07
【问题描述】:

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

下面是文件的示例(“S”是我开始的地方,“E”是我结束的地方):

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

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

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

【问题讨论】:

  • 请求家庭作业帮助的问题必须包括您迄今为止为解决问题所做的工作的总结,以及您在解决问题时遇到的困难的描述。
  • @RomanPustylnikov 第二段中的摘要是否算作我所做的,因为那是我试图做的,但我没有达到我需要的。我只是觉得发布我的代码会作弊。
  • "您对如何解决这个问题有任何想法吗?" - 是的;特别是如果您实现了某些东西,但它没有给您预期的结果,如果您发布您所做的并且清楚地说明它没有产生预期效果的地方,它会更有效率。在 SO 上,尽可能具体,而不是尽可能模糊

标签: java arrays char 2d


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我尝试使用来自这篇帖子link 的 .toCharArray 并且它不起作用。这和你的想法一样吗?
    • 这就是我愿意在不显示一些代码的情况下走多远。请阅读常见问题解答并向我们提供 MCVE。
    【解决方案3】:

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

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

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

    public class board {
    
        ArrayList a<Square>;
    }
    
    public class Square {
    
        int x;
        int y;
        String value;
    }
    

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

    【讨论】:

      猜你喜欢
      • 2020-07-08
      • 2021-12-19
      • 1970-01-01
      • 2012-11-19
      • 2013-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多