我试图在java中测试一个字符串,看它是否包含一个数字

时间:2016-09-24 15:35:04

标签: java string char

嗨,有人可以提供一些指导。我试图测试一个字符串,看它是否有一个数字,并根据输出结果将变量设置为true或false。这就是我到目前为止所做的:

public static void main (String [] args) {
    boolean hasDigit = false;
    String passCode = "abc";
    int valid = 0;

    if (Character.isdigit(passCode)) {
        hasDigit = true;
    } else {
        hasDigit = false;
    }

任何帮助将不胜感激。

感谢。

4 个答案:

答案 0 :(得分:1)

使用正则表达式:

if (passCode.matches(".*[0-9]+.*")) {...}

答案 1 :(得分:0)

循环遍历字符串并单独测试每个字符。找到数字字符后打破循环:

boolean hasDigit = false;
String passCode = "abc";
for (int i = 0; i < passCode.length(); i++) {
    if(Character.isDigit(passCode.charAt(i))) {
        hasDigit = true;
        break;
    }
}

答案 2 :(得分:0)

我认为更好的解决方案是编写正则表达式测试,以查看字符串是否在[0-9]之间有任何数字。这肯定会给你想要的结果。您也可以轻松更新正则表达式,以检查提供的字符串中的其他条件。

答案 3 :(得分:-1)

在循环中使用Character.isDigit()函数检查字符串中的每个字符字符是否为数字

公共类TestNumber {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub

            String s="abc1";

            boolean isDigit = false;


            for(int i=0;i<s.length();i++)
            {
                if(Character.isDigit(s.charAt(i))){


                        isDigit=true;
                        break;
                }

                else
                    isDigit=false;


            }

            System.out.println(isDigit);






}

}