Программа запускается с одним параметром — именем файла, который содержит английский текст.
Посчитать частоту встречания каждого символа.
Отсортировать результат по возрастанию кода ASCII (почитать в инете).
Пример:
‘,’=44, ‘s’=115, ‘t’=116.
Вывести на консоль отсортированный результат:
[символ1] частота1
[символ2] частота2
Закрыть потоки.
Пример вывода:
, 19
- 7
f 361
Требования:
1. Считывать с консоли ничего не нужно.
2. Создай поток для чтения из файла, который приходит первым параметром в main.
3. В файле необходимо посчитать частоту встречания каждого символа и вывести результат.
4. Выведенный в консоль результат должен быть отсортирован по возрастанию кода ASCII.
5. Поток для чтения из файла должен быть закрыт.
Не выполнены все пункты кроме первого
package com.javarush.task.task18.task1821;
/*
Встречаемость символов
*/
import java.io.FileInputStream;
public class Solution {
public static void main(String[] args) throws Exception {
FileInputStream file = new FileInputStream(args[0]);
byte[] buffer = new byte[file.available()];
while(file.available() > 0)
file.read(buffer, 0, Math.min(64000, buffer.length) );
file.close(); file = null;
long cnt[] = new long[256];
for (byte b : buffer)
cnt[b]++;
buffer = null;
for (byte c = 0; c < 256; c++)
if(cnt[c] > 0)
System.out.println((char) c + cnt[c]);
}
}