计算来自java中特定csv列的数据

时间:2014-07-05 19:52:52

标签: java csv

我知道这个问题已经在这个论坛上得到了处理,但我找不到我喜欢的正确答案。我有一个包含2列的csv文件,我想计算我文件的第二列(值列)的总和。这些是我的csv文件和我的代码示例: FILE.CSV

## Date ##     ## Value##
Status OK
12/12/2014          2
13/12/2014          5
14/12/2014          0
15/12/2014          3
Status KO
16/12/2014          5
17/12/2014          0
17/12/2014          7
17/12/2014          1

此类仅显示没有标题(值)的列。我喜欢把这些元素的总和(2 + 5 + 0 + 3 + 5 + 0 + 7 + 1)

public class LectureCSV {

public static void main(String[] args) {
    try {
        String csvFile = "C:/Users/Downloads/file.csv";

        @SuppressWarnings("resource")
        CSVReader csvReader = new CSVReader(new FileReader(csvFile), ';');
        String[] col;
        while ((col = csvReader.readNext()) != null) {
            if (!col[1].startsWith("valeur")) {
                System.out.println(col[1]);
            }

        }

    } catch (IOException ex) {
        Logger.getLogger(LectureCSV.class.getName()).log(Level.SEVERE,
                null, ex);
    }
}

}

2 个答案:

答案 0 :(得分:1)

如果您已经打印了这些值,为什么不保留计数并添加到计数而不是打印。

当你到达终点时,你可以打印总和。

答案 1 :(得分:0)

谢谢大家,我已经得到了我的问题的答案。这很容易!

public class LectureCSV {

public static void main(String[] args) {
    try {
        String csvFile = "C:/Users/.../Downloads/file.csv";

        @SuppressWarnings("resource")
        CSVReader csvReader = new CSVReader(new FileReader(csvFile), ';');
        String[] col;
        float res = 0;
        while ((col = csvReader.readNext()) != null) {
            try {
                res = res + Float.parseFloat(col[1]);
            } catch (NumberFormatException e) {
            }
        }
        System.out.println(res);
    } catch (IOException ex) {
        Logger.getLogger(LectureCSV.class.getName()).log(Level.SEVERE,
                null, ex);
    }
}

}