提示是让用户输入密码,密码必须至少为8个字符且没有空格,必须有一个大写字母,并且必须有一个数字。它必须使用while循环。如果密码符合,则应输出"密码ok"或者说"再试一次"
任何人都知道该怎么办? 我所能做的就是扫描仪和用户输入
答案 0 :(得分:0)
使用2个布尔标志。每个用于检查数字,大写字母的存在。你的情况可能会像:
//loop start
{
if(string.charAt(i)==space){
print "not valid"
return false;
}
// check for capital letter here and set flag to true if it is found.
// check digit here and set that flag to true if found.
}//loop end
// outside the loop make these checks
if(string.length>8 && isCapitalFound && isDigitFound)
//print "valid"
return true
答案 1 :(得分:0)
我让你的家在为你工作:
boolean noWhite = false;
boolean oneUppercase = false;
boolean oneDigit = false;
Scanner scan = new Scanner(System.in);
String pass = "";
while (!noWhite || !oneUppercase || !oneDigit || pass.length() < 8) {
System.out.print("new pass: ");
pass = scan.next();
noWhite = !pass.contains(" ");
oneUppercase = !pass.equals(pass.toLowerCase());
oneDigit = pass.matches(".*\\d.*");
}
System.out.println("OK");