Опробовала на тестовом файле, в выводе были странные символы, но в целом выглядело правильно. В чем может быть дело?
Проблема с пунктами:
- В файле необходимо посчитать частоту встречания каждого символа и вывести результат.
- Выведенный в консоль результат должен быть отсортирован по возрастанию кода ASCII.
Спасибо.
package com.javarush.task.task18.task1821;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
/*
Встречаемость символов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader fr = new BufferedReader(new FileReader(args[0]));
Map<Integer,Integer> unsortedMap = new HashMap<>();
int symbol = 0;
while (symbol != -1) {
symbol = fr.read();
if (unsortedMap.containsKey(symbol))
unsortedMap.put(symbol, unsortedMap.get(symbol) + 1);
else
unsortedMap.put(symbol, 1);
}
Map<Integer, Integer> treeMap = new TreeMap<>(unsortedMap );
for (Map.Entry<Integer, Integer> entry : treeMap.entrySet()) {
System.out.println((char) entry.getKey().intValue()
+ " " + entry.getValue());
}
fr.close();
}
}