【发布时间】:2012-02-06 02:09:15
【问题描述】:
在继续处理之前,我需要测试字符是字母还是空格。所以,我
for (Character c : take.toCharArray()) {
if (!(Character.isLetter(c) || Character.isSpaceChar(c)))
continue;
data.append(c);
检查数据后,我发现它包含的字符看起来像是拉丁字母表之外字符的 unicode 表示。如何修改上述代码以收紧我的条件,只接受 [a-z][A-Z] 范围内的字母字符?
正则表达式是一种方法,还是有更好(更快)的方法?
【问题讨论】:
-
等等,为什么你认为“é”不是字母?通常人们正在寻找方法让他们的代码处理国际输入更好,而不是更糟...
-
@Borealid,在我的情况下,控制字符是一个奇怪的东西,我目前正在进一步调查。
é肯定是一个有效字符,就我的程序而言,它不应该存在。 -
执行此操作的正则表达式是使用
\p{sc=Latin}检查拉丁脚本属性。
标签: java