使用while循环在Java中验证密码

时间:2014-10-14 05:21:55

标签: java validation while-loop passwords

提示是让用户输入密码,密码必须至少为8个字符且没有空格,必须有一个大写字母,并且必须有一个数字。它必须使用while循环。如果密码符合,则应输出"密码ok"或者说"再试一次"

任何人都知道该怎么办? 我所能做的就是扫描仪和用户输入

2 个答案:

答案 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");