【问题标题】:Csv Calculation using java使用java计算CSV
【发布时间】:2010-01-16 15:51:41
【问题描述】:

感谢您阅读我的问题。我有一个 CSV 文件,我读取它并将其存储在一个变量中。 现在我只想加上所有列来查看它的总和。 例如

3,34
12,673
23,8543


SUM
-------------
965,12658

列和行可以是 N 限制。看起来很简单,但不知道,它占用了我所有的时间。 请让我知道我应该使用哪种数据结构?或者如果你能告诉我一些 解决此问题的步骤。 谢谢!

【问题讨论】:

  • 请看上面的值,我不知道发生了什么。但在示例中 csv 有 2 列
  • 你能展示你到目前为止尝试过的代码吗?我们或许能够指出导致您出错的区域。
  • LinkedList 在这里太过分了。您不需要关心行数 - 只有列数很重要。
  • 真的……我想我昨晚还醉了。

标签: java math data-structures csv


【解决方案1】:

首先我推荐使用这个库来读取 CSV:http://opencsv.sourceforge.net/

使用这个库,您可以编写如下内容:

CSVReader reader = new CSVReader(new FileReader("yourfile.csv"));
String [] firstLine = reader.readNext();
long sum;
for (String columnValue : firstLine) {
    try {
        sum += Long.parseLong(columnValue);
    } catch (NumberFormatException e) {
        throw new RuntimeException(e);
    }
}
System.out.println(sum);

此示例仅读取第一行,但您可以编写一个 while 循环来保持解析行直到文件末尾。

【讨论】:

  • 抱歉,我复制了错误的 URL。我把它改成了正确的。 Open CSV 是您需要的。
  • 谢谢,它帮助我得到了这个想法。当我可以编写自己的程序时,我不使用 opencsv :)
【解决方案2】:

由于这可能是家庭作业,我不会提供源代码。您只需要阅读这些行并使用 String.split 解析它们。使用 Integer.parseInt 将它们转换为整数。注意异常。如果您有 N 列,则需要有 N 个变量来保存结果。每次读取后更新变量。

【讨论】:

  • 大声笑,这不是作业。我也没有要求源代码。我说如果你能给我一些提示。很抱歉,但我无法理解您的解决方案。我可以阅读csv。我可以拆分它们,我可以将所有值存储在变量中。但是在运行时为列声明 N 变量并不是一个实际的解决方案。是的,可能在学校你可以这样做只是为了通过考试;)
【解决方案3】:

我使用了一个二维数组。第一个代表列,第二个代表行。 我得到了一些列来声明动态第一个数组,然后使用循环来存储值并将它们求和。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 2014-10-27
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    相关资源
    最近更新 更多