Diakritische Zeichen wie Tilden, Zirkumflexe, Caretzeichen, Umlaute und Carons können sich ändern die Aussprache von Schriftzeichen. Um eine effiziente Suche und einen effizienten Vergleich zu ermöglichen, kann es erforderlich sein, diese Markierungen zu entfernen und das „einfache“ Gegenstück der Zeichen zu erhalten.
Verwendung von Unicode-Normalisierung und regulären Ausdrücken, die folgende Java-Implementierung Entfernt effektiv diakritische Zeichen:
import java.text.Normalizer; import java.util.regex.Pattern; public class DiacriticStripper { private static final Pattern DIACRITICS_PATTERN = Pattern.compile("[\p{InCombiningDiacriticalMarks}\p{IsLm}\p{IsSk}\u0591-\u05C7]+"); public static String stripDiacritics(String input) { String normalizedInput = Normalizer.normalize(input, Normalizer.Form.NFD); return DIACRITICS_PATTERN.matcher(normalizedInput).replaceAll(""); } }
Zum Beispiel die Eingabezeichenfolge „ńǹňñṅņṇṋṉ̈ɲƞᶇɳȵ“ würde in „n“ umgewandelt werden.
Die bereitgestellte Lösung befasst sich speziell mit diakritischen Zeichen. Wenn zusätzliche nicht-diakritische Sonderzeichen verarbeitet werden müssen, kann eine umfassendere Methode zur Zeichenfolgenvereinfachung eingesetzt werden:
import java.text.Normalizer; import java.util.regex.Pattern; public class StringSimplifier { private static final Pattern DIACRITICS_PATTERN = Pattern.compile("[\p{InCombiningDiacriticalMarks}\p{IsLm}\p{IsSk}\u0591-\u05C7]+"); public static String simplify(String input) { String normalizedInput = Normalizer.normalize(input, Normalizer.Form.NFD); String diacriticStripped = DIACRITICS_PATTERN.matcher(normalizedInput).replaceAll(""); // Replace additional non-diacritic special characters using a custom mapping // ... return simplifiedString.toLowerCase(); } }
Durch die Berücksichtigung eines größeren Zeichenbereichs bietet diese Methode einen umfassenderen Zeichenfolgenvereinfachungsprozess.
Das obige ist der detaillierte Inhalt vonWie kann ich diakritische Zeichen effizient aus Unicode-Zeichenfolgen in Java entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!