Menukar Simbol dan Huruf Aksen kepada Abjad Inggeris dengan Java
Masalah:
Banyak aksara dalam carta Unicode menyerupai huruf dalam abjad Inggeris tetapi mungkin mempunyai variasi atau aksen. Menukar aksara ini kepada rakan sejawat bahasa Inggeris mereka adalah satu cabaran. Contohnya, huruf "A" mempunyai lebih 20 variasi Unikod yang berbeza.
Penyelesaian:
Untuk menukar aksara ini dalam Java, ikut langkah berikut:
Berikut ialah pelaksanaan Java bagi algoritma:
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(); } }
Contoh Penggunaan:
String unicodeString = "tђє Ŧค๓เℓy"; String englishString = UnicodeToEnglishConverter.convert(unicodeString); System.out.println(englishString); // Output: the Family
Atas ialah kandungan terperinci Bagaimana untuk Menukar Simbol dan Huruf Aksen kepada Abjad Inggeris dengan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!