Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我尝试将带有特殊字母(例如 ä、à、è、ç、î、ñ.ö 等)的字符串转换为 ascii 字母。我的例子:
String newName = oldName.replaceAll("\\s","").replaceAll("[^a-zA-Z0-9]", "");
这很好用,除了所有特殊字母都消失了......有没有一种简单的方法可以将这些字母“转换”为 ascii 格式?
例如,“François Müdé”将变为“francoismuede”。我应该如何实现这个?
一般来说,ASCII这是一个非常糟糕和陈旧的字符表,它实际上不包含想要的字符。
ASCII
但是你的ASCII问题呢,它与表无关。Java 与unicode. 您需要的只是将此类符号包含到您的正则表达式中,例如[^a-zA-Z0-9äàèçîñö].
unicode
[^a-zA-Z0-9äàèçîñö]
核心问题是诸如a-z或A-Z(称为symbol classes)之类的常规结构不包含此类特殊的国家符号。您必须手动包含它们。
a-z
A-Z
symbol classes