-6

我是 Java 初学者。所以在回答这个问题时请记住这一点。我有 Java 的基本知识,但不知道如何开始?

(我知道这不是一个普遍的问题。但我无法解决这个问题)

我有一个像这样的文本文件

ID AMOUNT

001 20.20
002 10.20
003 11.10
003 15.20
002 10.56
001 42.52
001 45.00
004 94.36
005 86.25
005 45.36
004 12.66
006 45.36
006 123.32
002 125.22
001 85.22

我需要为每个 ID 生成一个包含总值的输出文件

例子 -

001 192.94
002 145.98......

我可以使用 JAVA 扫描仪和 while 循环逐行读取..

请给我一个简单的代码来做到这一点......

4

3 回答 3

2

我可以逐行阅读

然后

  1. 创建一个Map<Integer, Double>将保持您的价值观的
  2. 逐行读取,然后使用String.split空格分割字符串以获取 id 和数量
  3. 将 id 解析为 an Integer,将金额解析为 aDouble
  4. 在地图中搜索 id。如果它已经存在,则将金额获取到指定的 id 并将新金额添加到其中
  5. 否则添加一个新条目,该条目将具有新 id 和金额
于 2013-10-27T14:27:58.810 回答
1

会给你一个提示,使用 InputStream 从文本文件中读取,将 ID 放入映射键中,并将值放入值中,再次获得相同的键时,检索旧值,添加新值并再次放入映射中。

现在,您应该能够弄清楚您所说的您具有基本的Java知识。

于 2013-10-27T14:27:46.210 回答
1

1)使用扫描仪读取文件。

2) 使用 String.split 分割线

3)使用像Hashmap这样的数据结构来存储键值对。这把钥匙对我来说是独一无二的。如果是这样,请添加下一个可用值。

哈希映射

注意:您可以期望获得针对您的问题的最佳指导,但没有人会为您“编写”代码!

于 2013-10-27T14:29:37.853 回答