Heim >Java >javaLernprogramm >Wie konvertiert man Unicode-Symbole und Akzentbuchstaben in Java in das englische Alphabet?

Wie konvertiert man Unicode-Symbole und Akzentbuchstaben in Java in das englische Alphabet?

DDD
DDDOriginal
2024-11-11 16:02:02289Durchsuche

How to Convert Unicode Symbols and Accent Letters to the English Alphabet in Java?

Konvertieren von Symbolen und Akzentbuchstaben in das englische Alphabet in Java

Problemstellung

Unicode umfasst ein umfangreiches Repertoire an Zeichen, von denen viele den Buchstaben des englischen Alphabets ähneln. Die Herausforderung besteht darin, all diese ähnlichen Zeichen in ihre englischen Gegenstücke umzuwandeln. Zum Beispiel:

  • ҥ konvertiert in H
  • Ѷ konvertiert in V
  • Ȳ konvertiert in Y
  • Ǭ konvertiert in O

Unicode-Versionen von Buchstaben wie A/a stellen eine weitere Klassifizierung dar Schwierigkeit.

Java-Lösung

Um diese Konvertierungsherausforderung anzugehen, können wir den folgenden Ansatz in Java nutzen:

  • Verwenden Sie die Normalizer-Klasse um die Zeichenfolge in die Normalisierungsform D (NFD) zu normalisieren. Dadurch werden Akzentzeichen in Basiszeichen und kombinierende diakritische Zeichen erweitert.
  • Verwenden Sie einen regulären Ausdruck, um die kombinierenden diakritischen Zeichen mit dem folgenden Code zu identifizieren und zu entfernen:
import java.text.Normalizer;
import java.util.regex.Pattern;

public String deAccent(String str) {
    String nfdNormalizedString = Normalizer.normalize(str, Normalizer.Form.NFD); 
    Pattern pattern = Pattern.compile("\p{InCombiningDiacriticalMarks}+");
    return pattern.matcher(nfdNormalizedString).replaceAll("");
}

Dieser Code normalisiert zunächst die String mithilfe von NFD und verwendet dann einen regulären Ausdruck, um die diakritischen Zeichen zu entfernen, was zur Entfernung von Akzentsymbolen und zur Konvertierung der Zeichen in ihr englisches Alphabet führt Äquivalente.

Das obige ist der detaillierte Inhalt vonWie konvertiert man Unicode-Symbole und Akzentbuchstaben in Java in das englische Alphabet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn