我写的程序给了我错误的输出。它验证输入密码是否长度为6个字符,带有字母和数字,如果不满足其中一个要求,则应说“密码无效”。否则,它应输出“密码已接受”。但是当我输入超过6个字符长的密码时,虽然密码都是字母,但仍然说密码已被接受。
import java.util.*;
public class passwd {
public static void main(String[] args)
{
String in_pass;
int i = 0, x = 0, l = 0, d = 0;
boolean valid_len;
Scanner in = new Scanner(System.in);
System.out.print("Enter Password: ");
in_pass = in.next();
int len = in_pass.length();
valid_len = (len >= 6) ? true : false;
char passwd_l;
char passwd_d;
if (valid_len == false)
{
System.out.println("Invalid Password");
}
else if (valid_len == true)
{
for (i = 0, x = 0; i < len; i++, x++)
{
passwd_l = in_pass.charAt(i);
if (Character.isLetter(passwd_l))
{
l += i;
}
passwd_d = in_pass.charAt(x);
if (Character.isDigit(passwd_d))
{
d += x;
}
}
}
if (i > 0 && x > 0)
{
System.out.println("Password Accepted");
}
}
}
答案 0 :(得分:1)
看看这个!
else if (valid_len == true){
for (i = 0; i < len; i++){
passwd_l = in_pass.charAt(i);
if (Character.isLetter(passwd_l))
{
l ++;
}
if (Character.isDigit(passwd_l))
{
d ++;
}
}
}
if (l > 0 && d > 0){
System.out.println("Password Accepted");
}