java - 有效地替换字符串中所有不受支持的字符

标签 java android string replace

<分区>

Possible Duplicate:
Converting Symbols, Accent Letters to English Alphabet

我需要替换所有重音字符,例如

"à", "é", "ì", "ò", "ù"

"a'", "e'", "i'", "o'", "u'"...

因为在保存后重新加载带有重音字符的嵌套字符串时出现问题。

有没有一种方法可以在不对所有字符使用不同的字符串替换的情况下做到这一点?

例如,我宁愿避免做

text  = text.replace("a", "a'");
text2 = text.replace("è", "e'");
text3 = text2.replace("ì", "i'");
text4 = text3.replace("ò", "o'");
text5 = text4.replace("ù", "u'");

等等

最佳答案

我从这个 post 试过这个它似乎有效。

String str= Normalizer.normalize(str, Normalizer.Form.NFD);
str= str.replaceAll("\\p{InCombiningDiacriticalMarks}+", "'");

编辑: 但是替换 Combining diacritical marks 有一个副作用,你无法区分 À Á Â

关于java - 有效地替换字符串中所有不受支持的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12991207/

相关文章:

java - 在结束日期从数据库中删除提醒

java - 使用 BufferedReader 进行无限循环

java - Java中的日期转换

c - 在 C 中比较两个字符串的最快方法是什么?

android - 如何在 ionic 框架中获取设备 UUID

java - Dagger 组件有冲突的作用域

java - 使用显示标签 1.1.1 将数据导出到 Excel 时出错

java - java中其他包装对象如何以及为什么不使用常量池

Android Listview 图片大小

java - 如何在使用 drawImage 调整帧大小时调整图像大小