【发布时间】:2014-03-28 06:49:23
【问题描述】:
我想检查字符串是否包含除数字以外的任何字符或特殊字符。我为此编写了以下代码
String expression = "[^a-zA-z]";
Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(jTextFieldPurchaseOrder.getText().toString().trim());
当我从 jTextField 获取价值并检查我的状况时,它工作正常。但是在从 DTO 检查字符串时出错,如下所示
list.get(0).getChalan_trans_id().toString().trim().matches("[^a-zA-z]");
其中 list 是 DTO 的 arraylist。 我不知道我哪里出错了?
谢谢
【问题讨论】:
-
“但给出错误”并没有给我们足够的信息。怎么了? (请注意,这目前只是查看它是否有任何非 A-Z 字母 - 它与数字无关......)
-
“我要检查字符串是否包含除数字以外的任何字符或特殊字符”。正则表达式
\\D最适合这种情况 -
不应该是
[^a-zA-Z]而不是[^a-zA-z] -
所以你希望字符串只有数字?
-
@Jon Skeet:给出错误意味着它没有给我正确的结果,比如字符串包含字符,那么它给出错误的结果,如果字符不存在,那么在检查条件下给出 true。