【问题标题】:Reading text into a 2D array将文本读入二维数组
【发布时间】:2020-04-21 23:26:56
【问题描述】:

我需要能够读取文本文件,然后将其放入二维数组中。我在这里查看的所有问题都使用 ArrayLists,我们不允许这样做。 我的文本文件如图所示。

Bananas, 5, 5
Apples, 5, 5
Steak, 5, 10

第一个值是名称、第二个数量和第三个价格。我想将它们放在一个包含 30 个项目的数组 inventory[30][3] 中,其中包含我提到的三个特征。如果这太基本了,我深表歉意,我尝试了很多谷歌和 YouTube,但找不到简单的答案。

【问题讨论】:

    标签: java arrays file multidimensional-array filereader


    【解决方案1】:

    这是我用来获取你想要的数组的代码:

    import java.io.File;
    import java.io.FileNotFoundException;
    import java.util.Scanner;
    
    public class ReadFileIntoArray {
        public static void main(String[] args) {
            String[][] inventory = new String[30][3];
            try {
                File myObj = new File("filename.txt");
                Scanner myReader = new Scanner(myObj);
                int i = 0;
                while (myReader.hasNextLine()) {
                    String[] traits = myReader.nextLine().split(",");
                    for(int j = 0; j < traits.length; j++){
                        inventory[i][j] = traits[j];
                    }
                    i++;
                }
                // do stuff here with inventory
                myReader.close();
            } catch (FileNotFoundException e) {
                System.out.println("An error occurred.");
                e.printStackTrace();
            }
        }
    }
    

    这里有几点需要注意。

    首先是用逗号分隔文本文件每一行的拆分。根据文件的格式,您可能需要添加一个空格,以免特征上出现尾随空格:split(", ")

    接下来我遍历了 traits 字符串数组,这可能是多余的,因为只有 3 个条目,但这意味着如果将来需要,该数组可以扩展到更多特征。

    最后是i 变量。这是跟踪循环迭代所必需的。

    【讨论】:

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