gpt4 book ai didi

java - 用 Java 将文本写入文件

转载 作者:行者123 更新时间:2023-12-02 02:32:15 25 4
gpt4 key购买 nike

我正在尝试将简单的输出写入文件,但得到了错误的输出。这是我的代码:

Map<Integer,List<Client>> hashMapClients = new HashMap<>();
hashMapClients = clients.stream().collect(Collectors.groupingBy(Client::getDay));

Map<Integer,List<Transaction>> hasMapTransactions = new HashMap<>();
hasMapTransactions = transactions.stream().collect(Collectors.groupingBy(Transaction::getDay));

//DAYS
String data;
for (Integer key: hashMapClients.keySet()) {
data = key + " | ";
for (int i = 0; i <hashMapClients.get(key).size();i++) {
data += hashMapClients.get(key).get(i).getType() + " | " + hashMapClients.get(key).get(i).getAmountOfClients() + ", ";
writer.println(data);
}
}

我得到这个输出

1 | Individual | 0,

1 | Individual | 0, Corporation | 0,

2 | Individual | 0,

2 | Individual | 0, Corporation | 0,

但它应该是,而且如果它是最后一个,也不应该以 结尾。

1 | Individual | 0, Corporation | 0
2 | Individual | 0, Corporation | 0

我做错了什么?

最佳答案

听起来您只想将数据写入外部循环中的输出,而不是内部循环中。后者仅用于构建要写入的数据值。像这样的事情:

String data;
for (Integer key: hashMapClients.keySet()) {
// initialize the value
data = key + " | ";

// build the value
for (int i = 0; i <hashMapClients.get(key).size();i++) {
data += hashMapClients.get(key).get(i).getType() + " | " + hashMapClients.get(key).get(i).getAmountOfClients() + ", ";
}

// write the value
writer.println(data);
}

编辑:感谢您指出最后一个字符仍然需要删除。如果没有更多的错误检查,可能就像这样简单:

data = data.substring(0, data.length() - 1);

您可以根据逻辑需要添加错误检查,也许确认最后一个字符确实是逗号或确认内部循环至少执行一次等。

关于java - 用 Java 将文本写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46913765/

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