Ich möchte den Kleinbuchstaben von "I" von Englisch (i) mit Kleinbuchstaben von "İ" von Türkisch (i) übereinstimmen. Sie sind die gleiche Glyphe, aber sie passen nicht zusammen. Wenn ich System.out.println("İ".toLowerCase());
das Zeichen i und ein Punkt gedruckt wird (diese Website zeigt es nicht richtig)Wie kann ich "i" mit Türkisch in Java vergleichen?
Gibt es eine Möglichkeit, diese zu vergleichen? (Am besten ohne es hart zu codieren) Ich möchte das Programm übereinstimmen das gleiche Glyphen unabhängig von der Sprache und dem UTF-Code. Ist das möglich?
Ich habe die Normalisierung ohne Erfolg getestet.
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();
}
Das Ergebnis wird in dem Ort, aber die erste Zeile (iTurkish) hat immer noch die ̇
in der Nähe von Klein i nicht richtig dargestellt.
Zweck und Problem
Das wird eine mehrsprachige Wörterbuch sein. Ich möchte, dass das Programm erkennen kann, dass "IFEL" mit "if" beginnt. Um sicherzustellen, dass sie nicht die Groß-/Kleinschreibung beachten, konvertiere ich zuerst beide Texte in Kleinbuchstaben. IFEL wird i (dot) fel und „wenn“ nicht als Teil erkannt wird,
Die beiden Buchstaben sind nicht der gleiche uni Code sehen, so dass sie nicht übereinstimmt. – Zelldon
Sie können diakritische Zeichenfolgen mit [commons-lang] entfernen (https://commons.apache.org/proper/commons-lang/): org.apache.commons.lang3.StringUtils.stripAccents (String) – agad
@agad Wouldn verhindere es die Unterscheidung von I von I? Ich würde es in Erwägung ziehen, wenn es dazu keine Möglichkeit gibt. – WVrock