Помогите пожалуйста... интересно. Я сделал так Map<Character, Integer> letters = new TreeMap<Character, Integer>();
и как мы знаем буква "ё" оказалась в конце списка. Я знаю чтоб этого не случилось нужно переделать., вот так
Map<String, Integer> letters = new TreeMap<>(Collator.getInstance(new Locale("ru"))); , т.е. мне нужно переделывать ключ карты с символа на строку. А если другие способы ? Можно ли символы (Character) сделать "ru" ?
С Уважением Виталий.
package com.javarush.task.task10.task1012;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Locale;
import java.util.Map;
import java.util.TreeMap;
/*
Количество букв
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
// Алфавит
String abc = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
char[] abcArray = abc.toCharArray();
ArrayList<Character> alphabet = new ArrayList<Character>();
for (int i = 0; i < abcArray.length; i++) {
alphabet.add(abcArray[i]);
}
// Ввод строк
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
String s = reader.readLine();
list.add(s.toLowerCase());
}
String str=list.toString().replaceAll(",", "");
char[] abcArray2 = str.substring(1, str.length()-1).replaceAll(" ", "").toCharArray();
ArrayList<Character> alphabet2 = new ArrayList<Character>();
for (int i = 0; i < abcArray2.length; i++) {
alphabet2.add(abcArray2[i]);
}
Map<Character, Integer> letters = new TreeMap<Character, Integer>();
for (int i = 0; i < alphabet2.size(); i++) {
Character tempChar = alphabet2.get(i);
if (!letters.containsKey(tempChar)) {
letters.put(tempChar, 1);
}
else {
letters.put(tempChar, letters.get(tempChar) + 1);
}
}
for (int i = 0; i < alphabet.size(); i++){
Character tempChar1 = alphabet.get(i);
if (!letters.containsKey(tempChar1)) {
letters.put(tempChar1, 0);}
}
for (Map.Entry<Character, Integer> entry : letters.entrySet()){
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
}