Java 检查字符串是否有数字
如何检查密码是否包含数字?我必须使用isDigit()方法Java 检查字符串是否有数字,java,Java,如何检查密码是否包含数字?我必须使用isDigit()方法 我知道如何用charAt()只检查一个字符,而不检查整个单词 public class CheckingPasscodes { public static void main (String [] args) { boolean hasDigit = false; String passCode = ""; int valid = 0; passCode = "abc";
我知道如何用charAt()只检查一个字符,而不检查整个单词
public class CheckingPasscodes {
public static void main (String [] args) {
boolean hasDigit = false;
String passCode = "";
int valid = 0;
passCode = "abc";
// if (?)
hasDigit = true;
if (hasDigit) {
System.out.println("Has a digit.");
} else {
System.out.println("Has no digit.");
}
return;
}
}
for(int i=0;ifor(int i=0;i使用循环检查密码中的每个字符
hasDigit = false;
for (int i = 0; i < passCode.length(); ++i) {
if (Character.isDigit(passCode.charAt(i))) {
hasDigit = true;
break;
}
}
hasDigit=false;
对于(int i=0;i
使用循环检查密码中的每个字符
hasDigit = false;
for (int i = 0; i < passCode.length(); ++i) {
if (Character.isDigit(passCode.charAt(i))) {
hasDigit = true;
break;
}
}
hasDigit=false;
对于(int i=0;i
使用正则表达式可以帮助您:
hasDigit = passCode.matches(".*\\d+.*");
使用regex可以帮助您:
hasDigit = passCode.matches(".*\\d+.*");
如果String类有一个“hasDigit”方法,那就行了。@marks我修复了它:-)不,这两种方法都不起作用,因为它会抛出一个IndexOutOfBoundsException
,即使这不是问题,也没有大括号。而且char
是一个基本类型,它没有任何方法。即使这样,它也只会一遍遍地分配a
,然后测试最后一个,它不算为working、 这就是为什么您总是使用大括号。如果String类有一个“hasDigit”方法,这会起作用。@marks我修复了它:-)不,这两种方法都不起作用,因为它会抛出一个索引AutofBoundsException
,即使这不是问题,也没有大括号。另外,char
是一种基本类型,它没有方法。即使这样,它也只会一遍又一遍地分配一个,然后测试最后一个,这不算工作。这就是为什么你总是使用大括号。迂腐点:如果字符串也包含任何数字,这将无法检测数字,因为默认情况下
与它们不匹配。如果需要,可以将
替换为[\S\S]
。也就是说,hasDigit=passCode.matches(“[\\S\\S]*\\d+[\\S\\S]*”)代码>。或者更简洁地说,直接使用Pattern
类绕过String.matches
始终尝试匹配整个字符串的限制:hasDigit=java.util.Pattern.compile(\\d”).matcher(passCode.find()代码>迂回点:如果字符串也包含任何数字,则无法检测数字,因为默认情况下
与它们不匹配。如果需要,可以将
替换为[\S\S]
。也就是说,hasDigit=passCode.matches(“[\\S\\S]*\\d+[\\S\\S]*”)代码>。或者更简洁地说,直接使用Pattern
类绕过String.matches
始终尝试匹配整个字符串的限制:hasDigit=java.util.Pattern.compile(\\d”).matcher(passCode.find()代码>