我想將英語(i)的「I」的小寫字母與土耳其語(i)的「İ」的小寫字母相匹配。它們是相同的字形,但它們不匹配。當我做System.out.println("İ".toLowerCase());
字符我和一個點被打印(這個網站不正確顯示它)如何在java中與土耳其語「我」相匹配?
有沒有一種方法來匹配那些?(最好沒有硬編碼它)我想使程序匹配相同與語言和utf代碼無關的字形。這可能嗎?
我測試了標準化沒有成功。
public static void main(String... a) {
String iTurkish = "\u0130";//"İ";
String iEnglish = "I";
prin(iTurkish);
prin(iEnglish);
}
private static void prin(String s) {
System.out.print(s);
System.out.print(" - Normalized : " + Normalizer.normalize(s, Normalizer.Form.NFD));
System.out.print(" - lower case: " + s.toLowerCase());
System.out.print(" - Lower case Normalized : " + Normalizer.normalize(s.toLowerCase(), Normalizer.Form.NFD));
System.out.println();
}
結果不正確的網站顯示,但第一線(iTurkish)仍具有̇
附近小寫我。
目的和問題
這將是一個多語言字典。我希望程序能夠識別「İFEL」以「if」開頭。爲了確保它們不區分大小寫,我首先將兩個文本都轉換爲小寫。 İFEL變成我(點)惡魔和「如果」不被識別爲它的一部分
兩個字母是不一樣的UNI代碼,以便它們不匹配。 – Zelldon
可以使用[commons-lang](https://commons.apache.org/proper/commons-lang/)從字符串中去除變音符號:org.apache.commons.lang3.StringUtils.stripAccents(String) – agad
@agad Wouldn它阻止我從我的分化?我會考慮,如果沒有辦法做到這一點。 – WVrock