Решил эту задачу, проверил, все работает, но валидатор отправил меня в далекое плаванье с моим решением. Подскажите, пожалуйста, что не так, а то у меня уже третий день горит.
Вот код:
public class Solution {
public static void main(String[] args) throws Exception{
TreeMap map = new TreeMap<>();
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
while (reader.ready()) {
char[] array = reader.readLine().toCharArray();
for (char letter : array) {
if(map.get((int)letter) == null)
map.put((int)letter, 1);
else {
int a = map.get((int)letter);
a++;
map.put((int)letter, a);
}
}
}
reader.close();
char a;
int i;
for (Map.Entry pair : map.entrySet()) {
i = pair.getKey();
a = (char) i;
System.out.println( a + " " + pair.getValue());
}
reader.close();
}
}
Говорит, мол, вывод должен быть отсортирован по возрастанию кода ASCII. Но он и так отсортирован, в этом и суть!
zaxarello
40 уровень
и сразу хотел уточнить что у вас является ключем в мапе?)
и главный вопрос, почему отказались от идеи добавлять слова в список, а потом просто отсортировать его?)
Условие:
Программа запускается с одним параметром — именем файла, который содержит английский текст.
Посчитать частоту встречания каждого символа.
Отсортировать результат по возрастанию кода ASCII (почитать в инете).
Пример:
','=44, 's'=115, 't'=116.
Вывести на консоль отсортированный результат:
[символ1] частота1
[символ2] частота2
Закрыть потоки.
public class Solution {
public static void main(String[] args) throws Exception{
TreeMap<Character, Integer> map = new TreeMap<>();
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
while (reader.ready()) {
char[] array = reader.readLine().toCharArray();
for (char letter: array) {
if(map.get(letter) == null)
map.put(letter, 1);
else {
int a = map.get(letter);
a++;
map.put(letter, a);
}
}
}
reader.close();
for (Map.Entry<Character, Integer> pair: map.entrySet()) {
System.out.println(pair.getKey() + " " + pair.getValue());
}
}
}
Но валидатор все равно беснуется всё по тому же пункту.
попробуйте оформить вывод в формате