gpt4 book ai didi

java - 用java对csv文件中的唯一货币求和

转载 作者:行者123 更新时间:2023-11-30 07:42:38 26 4
gpt4 key购买 nike

我正在努力制作一个程序,该程序将为独特的货币货币求和。我知道如何从文件中读取,但找不到从 CSV 文件中求和的方法。 CSV 文件看起来像这样(忘记说 CSV 文件中的第一列是国家/地区,所以 IDK if map 可以工作):

EUR, 24  
EUR, 76
YEN, 66
YEN, 90
USD, 87
USD, 5

代码

File file = new File("file.csv");
Scanner reader = new Scanner(file);
ArrayList<String> rows = new ArrayList<String>();

while (reader.hasNextLine()) {
String line = reader.nextLine();
System.out.println(line);
rows.add(line);
}

reader.close();

最佳答案

您可以将行映射到自定义 Money 类型,然后使用 Collectors.groupingByCollectors.summingInt .假设金额是整数,如果不是整数,则更改求和收集器:

public class Money {
private final String symbol;
private final int amount;

public Money(String line) {
String[] values = line.split(", ");
symbol = values[0];
amount = Integer.parseInt(values[1]);
}

public String getSymbol() { return symbol; }
public int getAmount() { return amount; }
}

public static void main(String[] args) throws Exception {
Map<String, Integer> amounts = Files.lines(Paths.get("file.csv"))
.map(Money::new)
.collect(Collectors.groupingBy(Money::getSymbol, Collectors.summingInt(Money::getAmount)));
System.out.println(amounts); // {YEN=156, EUR=100, USD=92}
}

关于java - 用java对csv文件中的唯一货币求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54308940/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com