Diakritische Zeichen aus Unicode-Zeichen entfernen
Diakritische Zeichen wie Tilde, Umlaut und Zirkumflex können die Aussprache und Schreibweise von Zeichen ändern . Um die Suche und den Vergleich zu erleichtern, kann es erforderlich sein, diese Markierungen zu entfernen. So entfernen Sie diakritische Zeichen aus Unicode-Zeichen in Java:
Verwenden der Normalisierungsform NFD und regulärer Ausdrücke
Die Methode normalize(Normalizer.Form.NFD) zerlegt einen Unicode Zeichenfolge in ihre Grundzeichen und diakritischen Zeichen zerlegen. Indem Sie dies mit einem regulären Ausdruck kombinieren, der diakritische Zeichen übereinstimmt, können Sie diese aus der Zeichenfolge entfernen.
import java.util.regex.Pattern; public class DiacriticRemover { public static final Pattern DIACRITICS_PATTERN = Pattern.compile("[\p{InCombiningDiacriticalMarks}]"); public static String removeDiacritics(String str) { return DIACRITICS_PATTERN.matcher(str).replaceAll(""); } }
Beispielverwendung:
String withDiacritics = "Björń"; String withoutDiacritics = DiacriticRemover.removeDiacritics(withDiacritics); System.out.println(withoutDiacritics); // Output: Bjorn
Erweiterte Zeichenfolgenvereinfachung
Um nichtdiakritische Sonderzeichen zu verarbeiten, die sich auf Suche und Vergleich auswirken können, sollten Sie die Verwendung von Google in Betracht ziehen ImmutableMap und eine zusätzliche Bereinigungsrunde.
import com.google.common.collect.ImmutableMap; public class StringSimplifier { private static final ImmutableMap<String, String> NONDIACRITICS = ImmutableMap.<String, String>builder() // ... (define replacements here) .build(); public static String simplifiedString(String str) { return NONDIACRITICS.entrySet().stream() .reduce(str, (s, entry) -> s.replaceAll(entry.getKey(), entry.getValue()), String::concat); } }
Beispielverwendung:
String withNonDiacritics = "Białystok"; String simplified = StringSimplifier.simplifiedString(withNonDiacritics); System.out.println(simplified); // Output: Bialystok
Mit diesen Techniken können Sie diakritische Zeichen entfernen und Zeichenfolgen vereinfachen, um die Suche zu verbessern und Vergleichsmöglichkeiten.
Das obige ist der detaillierte Inhalt vonWie entferne ich diakritische Zeichen aus Unicode-Zeichenfolgen in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!