嗨,有人可以提供一些指导。我试图测试一个字符串,看它是否有一个数字,并根据输出结果将变量设置为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;
}
任何帮助将不胜感激。
感谢。
答案 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);
}
}