1
タスク:コンソールから単語の文字数を計算してみます。TreeMap何が「ё」に間違っていますか?
問題:文字「ё」;
public static void main(String[] args) throws Exception{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String abc = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"; //alphabet
//String abc = "абвгдежзийклмнопрстуфхцчшщъыьэюя"; // without "ё";
//String abc = "abcdefghijklmnopqrstuvwxyz";// eng
char[] abcArray = abc.toCharArray();
ArrayList<Character> alphabet = new ArrayList<Character>();
for (int i = 0; i < abcArray.length; i++)
{
alphabet.add(abcArray[i]);
}
//read console
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++)
{
String s = reader.readLine();
if (s.isEmpty()) break;
list.add(s.toLowerCase());
}
Map<Character, Integer> result = new TreeMap<Character, Integer>();
for (Character x : alphabet){
int count = 0;
for (String y : list){
char[] data = y.toCharArray();
for (int i = 0; i < data.length; i++) {
if (x.equals(data[i])){
count++;
}
}
result.put(x,count);
}
}
for (Map.Entry<Character, Integer> p : result.entrySet()){
System.out.println(p.getKey() + " " + p.getValue());
}
}
出力コード
абвгдеёжзийклмнопрстуфхцчшщъыьэюя а 1 б 1 в 1 г 1 д 1 е 1 ж 1 з 1 и 1 й 1 к 1 л 1 м 1 н 1 о 1 п 1 р 1 с 1 т 1 у 1 ф 1 х 1 ц 1 ч 1 ш 1 щ 1 ъ 1 ы 1 ь 1 э 1 ю 1 я 1 ё 1
リストの一番下に文字 "ё" が、使用のアルファベットのない場合は、 "E" と "ж"
の間でなければなりません"ё"または英語アルファベット - すべての文字がその位置を保持します。 私の質問です:なぜそれが起こったのですか?私は何か間違っている?私は必然的に地図を使うべきだった。
スクリーンショットへのリンクではなく、質問自体に必要な情報を含めてください。 – khelwood