识别字符串有数字

时间:2013-09-25 21:59:13

标签: java

这是我的输入验证程序:

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)

3 个答案:

答案 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;
}