Вывод программы правильный. Поначалу не принял, я подумал, что BufferedReader применять нельзя, нужно сделать через FileReader. Начал считывать по символу, проверял, если char = 10, то есть перенос строки, значит строка закончилась. Но с последней строкой такое может не пройти, если курсор не перенесен. Потом убедился, что люди все таки решают через BufferedReader. Сделал через TreeMap, merge. Элегантно и лаконично.
Вот, что пишет мистер Валидол:
"Программа НЕ должна считывать данные с консоли."
"Сервер не может корректно протестировать присланное решение. Убедись в наличии всех необходимых классов. Проверь, что в решении нет бесконечных циклов."
"Убедись, что ты не используешь статические поля в классе Solution."
О чем вообще речь?
package com.javarush.task.task19.task1919;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.TreeMap;
import java.util.Map;
import java.io.BufferedReader;
/*
Считаем зарплаты
*/
public class Solution23 {
public static void main(String[] args) throws IOException {
TreeMap<String, Double> map = new TreeMap<>();
BufferedReader bufferedReader = new BufferedReader(new FileReader(args[0]));
while (bufferedReader.ready()) {
String[] s = bufferedReader.readLine().split(" ");
map.merge(s[0], Double.parseDouble(s[1]), ((a, b) -> a + b));
}
bufferedReader.close();
for (Map.Entry<String,Double> entry : map.entrySet())
{
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}