当前位置:  开发笔记 > 编程语言 > 正文

Java:如何检查字符是否属于特定的unicode块?

如何解决《Java:如何检查字符是否属于特定的unicode块?》经验,为你挑选了2个好方法。

我需要确定我的输入所属的自然语言.目标是区分混合输入中的阿拉伯语英语单词,其中输入是Unicode并从XML文本节点中提取.我注意到了这堂课Character.UnicodeBlock.它与我的问题有关吗?我怎样才能让它发挥作用?

编辑:Character.UnicodeBlock方法对阿拉伯语很有用,但显然不适用于英语(或其他欧洲语言),因为BASIC_LATINUnicode块包含符号和不可打印的字符以及字母.所以现在我正在使用带有正则表达式matches()String对象的方法"[A-Za-z]+".我可以忍受它,但也许有人可以建议更好/更快的方式.



1> Dennis C..:

是的,你可以简单地使用Character.UnicodeBlock.of(char)



2> Alan Moore..:

如果[A-Za-z]+符合您的要求,您将找不到更快或更漂亮的东西.但是,如果要匹配Latin1块中的所有字母(包括带重音的字母和连字),可以使用:

Pattern p = Pattern.compile("[\\pL&&\\p{L1}]+");

这是所有Unicode字母集和所有Latin1字符集的交集.

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有