обнаружил следующую вещь, при чтении с текстового файла сохраненного под UTF8 задание не видела сходство стрингов по заданию "Петров".equals("Петров"); Если поменять кодировку текстового файла на ANSI IDE (Intellij Idea) кириллицу не видит, и выводит каракули, хотя сравнение производит. т.е. если поменять в текстовом файле "Петров" на "Petrov" то сравнение стрингов происходит как нужно.
Искал в инете нигде не смог найти решение именно по этой теме. Не могли бы подсказать в чем дело, заранее спасибо.
Задание
Считаем зарплаты
В метод main первым параметром приходит имя файла.
В этом файле каждая строка имеет следующий вид:
имя значение
где [имя] — String, [значение] — double. [имя] и [значение] разделены пробелом.
Для каждого имени посчитать сумму всех его значений.
Все данные вывести в консоль, предварительно отсортировав в возрастающем порядке по имени.
Закрыть потоки.
Пример входного файла:
Петров 2
Сидоров 6
Иванов 1.35
Петров 3.1
Пример вывода:
Иванов 1.35
Петров 5.1
Сидоров 6.0
Код
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
Map<String, Double> map = new TreeMap<>();
while (reader.ready()) {
String[] line = reader.readLine().split(" ");
if (map.containsKey(line[0])) {
map.put(line[0], map.get(line[0]) + Double.parseDouble(line[1]));
} else {
map.put(line[0], Double.parseDouble(line[1]));
}
}
for (String i : map.keySet()) {
System.out.println(i + " " + map.get(i));
}
reader.close();
}
}