【发布时间】:2017-05-03 18:06:56
【问题描述】:
我正在 Android Studio 中编写一个可以计算句子中每个字母出现次数的应用程序。例如:
// Input
String sentence = "abbdddd";
// Output
a:1; b:2; c:0; d:4; e:0; f:0; // And so on
但是,我也希望它计算阿姆哈拉语字符,所以如果我输入:
String sentence = "abcሀሁሂ";
它会给我:
a:1; b:1; c:1 ... ሀ:1; ሁ:1; ሂ:1;
目前,我有两个 ArrayList,cycle 和 letterCount。循环具有输入句子的任何字母可能的所有可能字符。 letterCount 与 cycle 的大小相同,并且在运行时,每个值都等于 0。当您输入一个句子时,它会在循环中查找任何匹配项(如果字母是英语或阿姆哈拉语,它应该会找到)。当它找到匹配项时,它会转到 letterCount 并将相应的值加一。因此,如果句子中的第一个字母是“a”,那么它会转到 letterCount 的第一个值并加一个。如果它是“c”,则它转到 letterCount 的第三个值并加一。 cycle 和 letterCount 中的值是使用 for 循环动态添加的:
for (int i = 97; i < 123; i++) {
char val = (char)i; // This is where the problem lies...I think
cycle.add(val);
letterCount.add(0);
}
但是,执行“(char)i”会将其转换为不包括阿姆哈拉语字符的 ASCII 字符。那么有没有办法,而不是循环通过 ASCII,循环通过 unicode 字符并将它们添加到循环中?任何帮助将不胜感激。
【问题讨论】:
标签: java android for-loop unicode