требуется вывод в виде
, 19
- 7
f 361
в тестовом файле у меня (2 пробела есть)
,,, -- sdfafd
Вывод правильный:
2
, 3
- 2
a 1
d 2
f 2
s 1
package com.javarush.task.task18.task1821;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.HashMap;
/*
Встречаемость символов
*/
//TODO Validator
public class Solution {
public static void main(String[] args) {
try (FileInputStream fileToRead = new FileInputStream(args[0])) {
HashMap<Byte, Integer> characterOccurrence = new HashMap<>();
byte[] buffer = new byte[1024];
while (fileToRead.available() > 0) {
final int readBytes = fileToRead.read(buffer);
for (int i = 0; i < readBytes; i++) {
final byte byteInQuestion = buffer[i];
final int previousOccurrence = characterOccurrence.getOrDefault(buffer[i], 0);
characterOccurrence.put(byteInQuestion, previousOccurrence + 1);
}
}
characterOccurrence.keySet().stream().sorted().forEach(key -> {
System.out.format("%1s %2d\n", (char) ((int) key), characterOccurrence.get(key));
});
} catch (IOException e) {
}
}
}
