如何用相应的英文字母替换像“á”这样的字符

How to replace Characters like "á" with corresponding english alphabet

我有一个示例字符串,例如 á、é、í、ó、ú、ü、ñ,我想替换特殊字符,例如:
á 和
é 和 e
等等..

我有一张地图,其中我将特殊字符作为键并将其相应的替换作为值。
现在假设我将一个 String "novás músíc" 传递到正则表达式将验证它的方法中,如果找到任何特殊字符(我提到的那个),那么它应该被映射的字符替换。

请帮助我完成正则表达式验证部分。

您可以使用这个正则表达式 [^0x00-0x7F]

String source=args[0];
Pattern p = Pattern.compile("[^0x00-0x7F]");
Matcher m = p.matcher(source);

if(map.containsKey(m.group()){
//Replace with the value here
}
else{
//put a default value for all
}

这只是基于您问题中提供的少量信息。您需要详细说明才能获得更详细的答案。此正则表达式只会检查 ASCII 值 (list here)

您可以通过 Unicode normalization 执行此操作,然后使用正则表达式删除连字标记。

查看此问题及其接受的答案:"Convert Unicode to ASCII without changing the string length (in Java)"