Maison  >  Article  >  Java  >  Comment convertir des caractères non anglais en alphabet anglais en Java ?

Comment convertir des caractères non anglais en alphabet anglais en Java ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-09 15:18:02144parcourir

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

Conversion de caractères non anglais en alphabet anglais en Java

Les caractères non anglais peuvent poser des problèmes lorsque vous travaillez avec des données textuelles. Pour rationaliser le traitement, il est souvent nécessaire de convertir ces caractères en leurs équivalents de l'alphabet anglais. Cette tâche peut être ardue, étant donné le grand nombre de caractères Unicode.

Énoncé du problème

Le défi réside dans l'identification et la conversion des caractères similaires du tableau Unicode en lettres dans l'alphabet anglais. Par exemple, plusieurs variantes de la lettre « A » existent, ce qui rend la classification difficile.

Solution

Pour résoudre ce problème en Java, vous pouvez exploiter la classe Normalizer et expressions régulières. L'approche suivante simplifie le processus de conversion :

  1. Normalisez la chaîne :

    • Utilisez Normalizer.normalize(str, Normalizer.Form. NFD) pour décomposer les caractères accentués en leurs caractères de base suivis de leur combinaison signes diacritiques.
  2. Supprimer les signes diacritiques :

    • Employez une expression régulière pour supprimer les signes diacritiques combinés. Voici un exemple : Pattern pattern = Pattern.compile("\p{InCombiningDiacriticalMarks} ");
  3. Remplacer les diacritiques :

    • Utilisez matcher.replaceAll("") pour remplacer les signes diacritiques de combinaison par un vide chaîne.

Cette méthode supprime principalement les signes diacritiques (accents) des caractères accentués, les convertissant efficacement en leurs équivalents de l'alphabet anglais.

Exemple

Le code Java suivant illustre cette approche :

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
    }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn