package com.javarush.test.level18.lesson10.home06;
/* Встречаемость символов
Программа запускается с одним параметром - именем файла, который содержит английский текст.
Посчитать частоту встречания каждого символа.
Отсортировать результат по возрастанию кода ASCII (почитать в инете). Пример: ','=44, 's'=115, 't'=116
Вывести на консоль отсортированный результат:
[символ1] частота1
[символ2] частота2
Закрыть потоки. Не использовать try-with-resources
Пример вывода:
, 19
- 7
f 361
*/
import java.io.*;
import java.util.Map;
import java.util.TreeMap;
public class Solution {
public static void main(String[] args) throws IOException {
TreeMap<Integer, Integer> map = new TreeMap<>();
BufferedReader reader = new BufferedReader(new FileReader(new File(args[0])));
int c;
while ((c = reader.read()) != -1) {
int x = (char) c;
int z = 1;
for (Map.Entry<Integer, Integer> integer : map.entrySet()) {
if (integer.getKey() == x) {
z += integer.getValue();
}
}
map.put(x, z);
}
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
System.out.println(((char) (int) entry.getKey()) + " " + entry.getValue());
}
reader.close();
}
}
Leave A Comment