我知道这个问题已经在这个论坛上得到了处理,但我找不到我喜欢的正确答案。我有一个包含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);
}
}
}
答案 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);
}
}
}