例如 -
text = Československá obchodní banka;
text string contains diacritics like Č , á etc.
我想写一个函数,我将传递这个字符串“Československáobchodníbanka”和function will return true if string contains diacritics else false
。
我必须处理变音符号和字符串,其中包含不属于A-z或a-z范围的字符。
1) If String contains diacritics then I have to do some XXXXXX on it.
2) If String contains character other than A-Z or a-z and not contains diacritics then do some other operations YYYYY.
我不知道该怎么做。
答案 0 :(得分:11)
一项知识:在Unicode中存在á
的代码,但a
和combining mark-'
的结果相同。
您可以使用java.text.Normalizer,如下所示:
public static boolean hasDiacritics(String s) {
// Decompose any á into a and combining-'.
String s2 = Normalizer.normalize(s, Normalizer.Form.NFD);
return s2.matches("(?s).*\\p{InCombiningDiacriticalMarks}.*");
//return !s2.equals(s);
}
答案 1 :(得分:5)