Conversion de symboles et de lettres d'accentuation en alphabet anglais avec Java
Problème :
Beaucoup les caractères du graphique Unicode ressemblent aux lettres de l'alphabet anglais mais peuvent présenter des variations ou des accents. La conversion de ces caractères en leurs homologues anglais est un défi. Par exemple, la lettre « A » comporte plus de 20 variantes Unicode différentes.
Solution :
Pour convertir ces caractères en Java, suivez ces étapes :
Voici une implémentation Java de l'algorithme :
import java.text.Normalizer; import java.util.HashMap; import java.util.Map; import java.util.regex.Pattern; public class UnicodeToEnglishConverter { private static final Map<String, String> unicodeToEnglishMap = new HashMap<>(); static { // Initialize the mapping unicodeToEnglishMap.put("ҥ", "H"); unicodeToEnglishMap.put("Ѷ", "V"); unicodeToEnglishMap.put("Ȳ", "Y"); unicodeToEnglishMap.put("Ǭ", "O"); unicodeToEnglishMap.put("Ƈ", "C"); } public static String convert(String unicodeString) { // Normalize the string in NFD form String nfdNormalizedString = Normalizer.normalize(unicodeString, Normalizer.Form.NFD); // Remove diacritics Pattern pattern = Pattern.compile("\p{InCombiningDiacriticalMarks}+"); String deaccentedString = pattern.matcher(nfdNormalizedString).replaceAll(""); // Replace similar characters with English equivalents StringBuilder englishString = new StringBuilder(); for (char c : deaccentedString.toCharArray()) { englishString.append(unicodeToEnglishMap.getOrDefault(String.valueOf(c), String.valueOf(c))); } return englishString.toString(); } }
Exemple d'utilisation :
String unicodeString = "tђє Ŧค๓เℓy"; String englishString = UnicodeToEnglishConverter.convert(unicodeString); System.out.println(englishString); // 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!