简体   繁体   English

如何在 Java 中将重音字母转换为常规字符

[英]How to convert accented letters to regular char in Java

How do I convert Æ我如何转换Æ and áá into a regular English char with Java?用 Java 转换成普通的英文字符? What I have is something like this: Local TV from Paran á我有的是这样的:Paran á Local TV . . How to convert it to [Parana]?如何将其转换为 [Parana]?

Look at icu4j or the JDK 1.6 Normalizer:查看 icu4j 或 JDK 1.6 Normalizer:

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

As far as I know, there's no way to do this automatically -- you'd have to substitute manually using String.replaceAll .据我所知,没有办法自动执行此操作——您必须使用String.replaceAll手动替换。

String str = "Paraná";
str = str.replaceAll("á", "a");
str = str.replaceAll("Æ", "a");

Try something similar to the following code snippet:尝试类似于以下代码片段的操作:

import org.apache.commons.lang3.StringUtils;

public class Test {
    public static void main(String[] args) {

        String original = new String("Ramesh Öhrman");
        try {
            
            System.out.println(StringUtils.stripAccents(original));
            
        } catch (Exception e) {
        }
        
    }
}

Output: Ramesh Ohrman输出:Ramesh Ohrman

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM