【发布时间】:2017-03-01 05:11:41
【问题描述】:
提示是:
编写一个 Java 程序,在命令行从用户那里读取一个字符串(密码),然后检查密码是否符合公司密码策略。
政策是:
1) 密码必须至少为 8 个字符
2) 密码必须包含一个大写字母
3) 密码必须包含一位数字。
使用 while 循环单步执行字符串。
如果密码符合则输出“Password OK”,否则输出“Password OK”
输出“密码不符合策略。”
我把它记下来了,但它似乎仍然无法正常工作:
String password = "";
boolean hasDigitAndUpper = false;
boolean hasUpper = false;
int i = 0;
System.out.print("Please enter a password: ");
password = scnr.nextLine();
if (Character.isUppercase(password.charAt(i))){
if (Character.isUppercase(password.charAt(i))) {
i++;
hasDigitAndUpper = true;
}
}
while (password.length() < 8 || hasDigitAndUpper != true) {
System.out.println("Password does not conform to policy");
System.out.print("Please enter a password: ");
password = scnr.nextLine();
}
System.out.println("Password OK");
我想我最大的问题是我的布尔值,我不知道如何解决。
【问题讨论】:
-
弹出的东西:一旦你得到一个新密码,你就不会重新编译hasDigitAndUpper。 Java 不会自动为您更新。
-
啊。我对编码很陌生,所以我不知道。谢谢你! GhostCat:我整天都在工作和上课,现在才回到这个问题。哈哈。