这是我的输入验证程序:
public class MyInputVerifier extends InputVerifier {
@Override
public boolean verify(JComponent input) {
String text = ((JTextField) input).getText().trim()
if (text.isEmpty() || text.length() == 0) return false;
// How verifier that if text contains digit, return false?
return true;
}
我需要识别text
何时包含数字,它会向我返回false。
是否有任何方法或我应该使用旧方式?(for loop)
答案 0 :(得分:5)
这是检查text
是否包含数字的一种方法:
boolean containsADigit = text.matches(".*\\d.*");
如果要检查所有字符是否都是数字,您仍然可以使用正则表达式,或尝试将字符串解析为整数:
boolean isDigitsOnly = text.matches("\\d*");
答案 1 :(得分:2)
仅使用非常基本的东西:
public boolean containsDigit(String str) {
int n = str.size();
for(int i=1, i<n, ++i) {
if(str.charAt(i).isDigit()) {return true;}
}
return false;
}
答案 2 :(得分:1)
您是否正在寻找更快捷的方式?
private boolean hasOnlyDigits(String str) {
for(int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c < '0' || c > '9') {
return false;
}
}
return true;
}