【发布时间】:2014-08-15 05:09:22
【问题描述】:
编写了一个接收字符串并检查以下条件的方法:
- 如果 String 为“quit”,它将终止程序。
- 如果字符串是整数以外的任何值,它应该返回“无效输入”。
- 任何负整数和 0 都应返回“无效输入”。
但是,当我传入 10 时,它返回为“无效输入”?
请指教:
public static String validate(String input) {
Pattern pattern = Pattern.compile(".*[^1-9].*");
StringBuilder results = new StringBuilder();
if (input.equals("quit")) {
System.exit(1);
} else if (!pattern.matcher(input).matches() == false) {
results.append("Invalid input ");
results.append("'");
results.append(input);
results.append("'");
}
return results.toString();
}
我在做什么有什么问题?
【问题讨论】:
-
您的正则表达式匹配至少包含一个除 1-9 之外的字符的任何字符串。这可能根本不是您想要的。
-
if (!pattern.matcher(input).matches() == false)与if (pattern.matcher(input).matches())相同