This question already has answers here:
Remove diacritical marks (ń ǹ ň ñ ṅ ņ ṇ ṋ ṉ ̈ ɲ ƞ ᶇ ɳ ȵ) from Unicode chars
(12个答案)
已关闭6年。
我需要比较使用拉丁字母在某些字符上带有重音符号(变音符号)的欧洲场所的名称。有许多中欧和东欧名称,在
我需要一种方法来让我的系统识别例如
用法示例:
(12个答案)
已关闭6年。
我需要比较使用拉丁字母在某些字符上带有重音符号(变音符号)的欧洲场所的名称。有许多中欧和东欧名称,在
ž
和ü
上都带有诸如拉丁字符的重音符号,但是有些人仅使用不带重音符号的常规拉丁字符来写名称,例如z
和u
。我需要一种方法来让我的系统识别例如
mšk žilina
与msk zilina
相同,并且对于所有其他带重音符号的字符都相似。有没有简单的方法可以做到这一点? 最佳答案
您可以使用 java.text.Normalizer
和little regex摆脱diacritical marks。
public static String removeDiacriticalMarks(String string) {
return Normalizer.normalize(string, Form.NFD)
.replaceAll("\\p{InCombiningDiacriticalMarks}+", "");
}
用法示例:
String text = "mšk žilina";
String normalized = removeDiacriticalMarks(text);
System.out.println(normalized); // msk zilina
关于java - 从拉丁字符中删除重音符号(变音符号)以进行比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3222972/
10-10 23:50