我有一个文件,它在表单key/value
对中具有字符串,例如人员和计数,例如
"Reggy, 15"
"Jenny, 20"
"Reggy, 4"
"Jenny, 5"
在输出中,我应该根据键总结所有计数值,因此对于我们的示例输出将是
“雷吉,19 岁” “珍妮,25 岁”
这是我的方法:
- 读取每一行,并使用扫描仪为每一行获取密钥和计数并
,
作为分隔符 - 现在看看 key 之前是否已经存在,如果没有,则将 currentValues 添加到 previousValues,然后将 currentValue 作为 HashMap 的值。
示例实现:
public static void main(final String[] argv) {
final File file = new File("C:\\Users\\rachel\\Desktop\\keyCount.txt");
try {
final Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
if (scanner.hasNext(".*,")) {
String key;
final String value;
key = scanner.next(".*,").trim();
if (!(scanner.hasNext())) {
// pick a better exception to throw
throw new Error("Missing value for key: " + key);
}
key = key.substring(0, key.length() - 1);
value = scanner.next();
System.out.println("key = " + key + " value = " + value);
}
}
} catch (final FileNotFoundException ex) {
ex.printStackTrace();
}
}
我不清楚的部分是如何划分键/值对,同时读取它们并基于它创建 HashMap。
还是建议的方法是最佳方法,还是有办法进一步提高性能。