我怎么才能知道我的String包含变音符号?
例如 –
text = Československá obchodní banka; text string contains diacritics like Č , á etc.
我想写一个函数,我将传递这个字符串“Československáobchodníbanka”, function will return true if string contains diacritics else false
,则function will return true if string contains diacritics else false
。
我必须处理变音符号和字符串,其中包含不分别落入Az或az范围的字符。
1) If String contains diacritics then I have to do some XXXXXX on it. 2) If String contains character other than AZ or az and not contains diacritics then do some other operations YYYYY.
我不知道该怎么做。
一条知识:在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); }
Normalizer类似乎能够实现这一目标。 一些有限的测试表明
Normalizer.isNormalized(text, Normalizer.Form.NFD)
可能是你需要的。
- Jboss Messaging JMS
- Java Socket客户端和服务器
- Java XML解析:使用SAX获取内部XML
- com.amazonaws.services.s3.model.AmazonS3Exception:Forbidden(Service:Amazon S3; Status Code:403; Error Code:403 Forbidden; Request ID:XXXXXXXX)
- Java JNI – 将C中分配的资源与java对象相关联?
- 从头开始的Spring MVC教程
- 如果父进程不在Java中使用stdout / stderr,为什么进程会挂起?
- 是否可以使用HTTP POST下载文件?
- 非静态方法不能从静态上下文引用