Java change áéőűú to aeouu

2022-08-31 22:15:40

答案 1

我认为您的问题与以下问题相同:

因此,答案也是相同的:

String convertedString = 
       Normalizer
           .normalize(input, Normalizer.Form.NFD)
           .replaceAll("[^\\p{ASCII}]", "");

示例代码:

final String input = "Tĥïŝ ĩš â fůňķŷ Šťŕĭńġ";
System.out.println(
    Normalizer
        .normalize(input, Normalizer.Form.NFD)
        .replaceAll("[^\\p{ASCII}]", "")
);

输出:

这是一个时髦的字符串


答案 2

您可以使用来分隔基字母和变音符号,然后通过正则表达式删除后者:java.text.Normalizer

public static String stripDiacriticas(String s) {
    return Normalizer.normalize(s, Form.NFD)
        .replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}