【问题标题】:How can I store data in CSV into an array in Java?如何将 CSV 中的数据存储到 Java 中的数组中?
【发布时间】:2019-04-01 20:46:29
【问题描述】:

我有以下 .csv 文件:

B00987,58
B00567,43
B00343,59
B00653,25
B00757,31
B00876,40
B00421,62
B00568,78
B00826,79
B00126,93
B00862,62
B00999,12
B00237,68
B00762,85
B00864,49

我需要将所有 B00000 数字存储在一个数组中以供以后使用。数组应如下所示:

Position 0 | B00987
Position 1 | B00567
Position 2 | B00343
Position 3 | B00653
....
Position 13 | B00762
Position 14 | B00864

文件路径为:

String filepath = "src\\marks.csv";

知道如何在 java 中做到这一点吗?谢谢

【问题讨论】:

    标签: java arrays csv


    【解决方案1】:

    您可以通过Files.lines() 方法使用Java Streams:

    try (Stream<String> lines = Files.lines(Paths.get("marks.csv"))) {
        String[] result = lines
                .map(line -> line.split(","))
                .map(items -> items[0])
                .toArray(String[]::new);
    } catch (IOException e) {
        e.printStackTrace();
    }
    

    这会将所有行读取到一个流中,将每一行按, 分割并仅使用第一个元素。

    【讨论】:

      【解决方案2】:

      您仅以可预测的格式存储第一列,因此您可以在每行中查找, 分隔符的第一次出现。假设 marks.csv 是您 JAR 中的资源:

      try (BufferedReader reader = new BufferedReader(new InputStreamReader(
              getClass().getResourceAsStream("/marks.csv")))) {
        String[] numbers = reader.lines()
            .map(l -> l.substring(0, l.indexOf(',')))
            .toArray(String[]::new);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-24
        • 2018-06-30
        • 2017-11-04
        相关资源
        最近更新 更多