Java を使用して記号とアクセント文字を英語のアルファベットに変換する
問題:
多数Unicode 表の文字は英語のアルファベットの文字に似ていますが、バリエーションや違いがある場合があります。アクセント。これらの文字を英語の対応する文字に変換するのは困難です。たとえば、文字「A」には 20 を超える異なる Unicode バリエーションがあります。
解決策:
これらの文字を Java で変換するには、次の手順に従います:
アルゴリズムの Java 実装は次のとおりです:
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(); } }
使用例:
String unicodeString = "tђє Ŧค๓เℓy"; String englishString = UnicodeToEnglishConverter.convert(unicodeString); System.out.println(englishString); // Output: the Family
以上がJava で記号とアクセント文字を英語のアルファベットに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。