0

这是我的输入验证器:

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循环)

4

3 回答 3

5

这是检查是否text包含数字的一种方法:

boolean containsADigit = text.matches(".*\\d.*");

如果您想检查所有字符是否都是数字,您仍然可以使用正则表达式,或者尝试将字符串解析为整数:

boolean isDigitsOnly = text.matches("\\d*");
于 2013-09-25T22:02:25.680 回答
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;
}
于 2013-09-25T22:12:43.143 回答
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;
}
于 2013-09-25T22:09:25.813 回答