我寫在Android Studio中的應用程序,可以算一個句子的每個字母的出現。例如:通過迭代Unicode字符的動態
// 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;
此刻,我有兩個ArrayLists,cycle和letterCount。循環具有輸入句子的任何字母可能的所有可能字符。 letterCount與循環的大小相同,並且在運行時,每個值都等於零。當你輸入一個句子時,它會查找循環中的任何匹配項(如果該字母是英語或阿姆哈拉語,它應該找到)。當它找到匹配時,它將轉到letterCount並將其添加到相應的值。因此,如果句子中的第一個字母是「a」,那麼它將轉到letterCount的第一個值並添加一個。如果它是「c」,則它轉到letterCount的第三個值並添加一個。 內部循環和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);
}
但是,這樣做「(炭)I」將其轉換成ASCII字符,不包括阿姆哈拉字符。那麼有沒有辦法,而不是循環通過ASCII,循環unicode字符,並將它們添加到循環?任何幫助將不勝感激。
感謝您的迴應!然而,我的意思是,從我搜索了起來,爲阿姆哈拉語的Unicode值包括字母(例如:\ u126B),我不知道如何通過字母和數字環路。我也不想將它硬編碼到ArrayLists中,因爲有很多阿姆哈拉字符。我應該改寫我的問題嗎? –
我還不確定你想問什麼。你需要決定如何正確表達你不知道該怎麼做的部分。例如,你是否意識到一個Unicode代碼點可以寫成一個帶有十六進制文字符號的整數? 'int i = 0x126B' –
我現在解決了。我需要的是某種方式(不必是unicode)將數字轉換爲相應的字符。我使用的代碼是這樣的:for(int i = 4608; i <4954; i ++){char val =(char)i; cycle.add(VAL); letterCount.add(0);}我不想要任何字母,因爲我想將它放在for循環中並遍歷它。無論如何,感謝您的幫助! :) –