【问题标题】:How to convert accented letters to regular char in Java如何在Java中将重音字母转换为常规字符
【发布时间】:2010-12-30 03:38:59
【问题描述】:

如何使用 Java 将 Æá 转换为常规英文字符?我所拥有的是这样的:来自 Paraná 的本地电视。如何将其转换为 [Parana] ?

【问题讨论】:

标签: java char


【解决方案1】:

查看 icu4j 或 JDK 1.6 Normalizer:

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

【讨论】:

  • 您的意思可能是“Normalizer.normalize(text, Normalizer.Form.NFD)”而不是“Normalizer.decompose(text, false, 0)”
  • 我想我不小心把旧日晒了。类方案代替。感谢收看。
  • Normalizer.Form.NFKD 可能比 Normalizer.Form.NFD 更好,这取决于他想如何处理连字。例如:NFKD 会将"fi" 转换为"fi"
  • stackoverflow.com/a/3322174/535203replaceAll("[^\\p{ASCII}]", "");
【解决方案2】:

据我所知,无法自动执行此操作 - 您必须使用 String.replaceAll 手动替换。

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

【讨论】:

    猜你喜欢
    • 2021-10-13
    • 2017-05-05
    • 2020-04-08
    • 2023-03-06
    • 1970-01-01
    • 2016-08-06
    • 1970-01-01
    • 2011-05-12
    • 2016-12-10
    相关资源
    最近更新 更多