Heim  >  Artikel  >  Java  >  Wie konvertiere ich nicht-englische Zeichen in Java in englisches Alphabet?

Wie konvertiere ich nicht-englische Zeichen in Java in englisches Alphabet?

Barbara Streisand
Barbara StreisandOriginal
2024-11-09 15:18:02144Durchsuche

How to Convert Non-English Characters to English Alphabet in Java?

Konvertieren nicht-englischer Zeichen in englisches Alphabet in Java

Nicht-englische Zeichen können bei der Arbeit mit Textdaten eine Herausforderung darstellen. Um die Verarbeitung zu optimieren, ist es häufig erforderlich, diese Zeichen in ihre Entsprechungen im englischen Alphabet umzuwandeln. Diese Aufgabe kann angesichts der großen Anzahl von Unicode-Zeichen entmutigend sein.

Problemstellung

Die Herausforderung besteht darin, ähnliche Zeichen aus der Unicode-Tabelle zu identifizieren und in Buchstaben umzuwandeln das englische Alphabet. Beispielsweise gibt es mehrere Variationen des Buchstabens „A“, was die Klassifizierung erschwert.

Lösung

Um dieses Problem in Java zu beheben, können Sie die Normalizer-Klasse nutzen reguläre Ausdrücke. Der folgende Ansatz vereinfacht den Konvertierungsprozess:

  1. Normalisieren Sie den String:

    • Verwenden Sie Normalizer.normalize(str, Normalizer.Form. NFD), um die Akzentzeichen in ihre Grundzeichen zu zerlegen und sie anschließend zu kombinieren Diakritische Zeichen.
  2. Diakritische Zeichen entfernen:

    • Verwenden Sie einen regulären Ausdruck, um die kombinierenden diakritischen Zeichen zu entfernen. Hier ist ein Beispiel: Mustermuster = Pattern.compile("\p{InCombiningDiacriticalMarks} ");
  3. Diakritische Zeichen ersetzen:

    • Verwenden Sie matcher.replaceAll(""), um die kombinierenden diakritischen Zeichen durch ein Leerzeichen zu ersetzen string.

Diese Methode entfernt hauptsächlich diakritische Zeichen (Akzente) aus akzentuierten Zeichen und wandelt sie effektiv in ihre Entsprechungen im englischen Alphabet um.

Beispiel

Der folgende Java-Code demonstriert diesen Ansatz:

import java.text.Normalizer;
import java.util.regex.Pattern;

public class ConvertAccentedCharsToEnglish {

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

    public static void main(String[] args) {
        String accentedString = "tђє Ŧค๓เℓy";
        String convertedString = deAccent(accentedString);
        System.out.println(convertedString); // Output: the Family
    }
}

Das obige ist der detaillierte Inhalt vonWie konvertiere ich nicht-englische Zeichen in Java in englisches 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