所以我试图让我的程序遍历我的字符串中的每个字符,如果找到一个数字,那么打印密码并退出for循环和while循环(不包括while循环,但它是'while(test == 0)')。但是如果我输入没有数字的密码,它将扫描整个字符串并打印我需要的数字。出于某种原因,当我输入带有数字的密码时,它完美地运行。但是当我输入没有数字的密码时,我收到一条错误消息......有什么想法吗?
这是我的代码:
for (int num = 0; num <= passw.length(); num++){
if (Character.isDigit(passw.charAt(num))){
num += 1000;
test++;
System.out.println(passw);
}
if (num >= passw.length() && num <= 1000){
System.out.println("You need a number");
}
}
答案 0 :(得分:2)
for (int num = 0; num <= passw.length(); num++){
索引从0
而非1
所以循环应该是:
for (int num = 0; num < passw.length(); num++){
答案 1 :(得分:2)
for (int num = 0; num <= passw.length(); num++){
将转到字符串末尾的字符。只是做
for (int num = 0; num < passw.length(); num++){
希望有所帮助!
答案 2 :(得分:2)
你正在走错路。用这个代替所有代码:
if (passw.matches("\\D*")) {
System.out.println("You need a number");
}
这使用正则表达式\D*
,这意味着“每个字符都是非数字的”