Проблема видимо в цикле с map при добавлении и обновлении значения, но почему так нелья?
package com.javarush.task.task18.task1821;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Map;
import java.util.StringJoiner;
import java.util.TreeMap;
/*
Встречаемость символов
*/
public class Solution {
public static void main(String[] args) throws Exception {
Map<Character, Integer> map = new TreeMap<>();
//считал данные файла в одну строку
BufferedReader rd = new BufferedReader(new FileReader(args[0]));
StringJoiner joiner = new StringJoiner("");
while (rd.ready()) {
joiner.add(rd.readLine());
}
rd.close();
String joined = joiner.toString();
//строку перевел в массив символов
char[] result = joined.toCharArray();
//если содержит map символ обновляю значение, иначе просто добавляю
for (char c : result) {
for (Map.Entry entry : map.entrySet()) {
if (map.containsKey(c)) {
map.computeIfPresent(c, (k, v) -> v + 1);
}else {
map.put(c, 0);
}
}
}
for (Map.Entry entry : map.entrySet()) {
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}