【发布时间】:2017-11-06 06:18:59
【问题描述】:
所以最近我一直在编写这个密码检查器,我几乎完成了。对于我的密码检查器,有一些要求。
- 大于 8 个字符
- 少于 20 个字符
- 必须使用 @ 符号和下划线
- 还必须包含数字,不能使用名字或姓氏
我已经成功地编写了所有这些代码,现在我只需编写一个代码,它会一次性列出所有未满足的要求,而不是一一列出。此外,当密码可以接受并且所有要求都已满足时。我感谢任何帮助,谢谢伙计们
import java.util.Scanner;
public class PasswordChecker {
public static void main(String[] args) {
Scanner james = new Scanner(System.in);
System.out.println("Hi there, Welcome to Password Heavean where we have the hardest password combinations on this easrth and any other earth.");
System.out.println("Take note your password must be longer than 8 and less than 20 characters, Can not have your first or last name, must use a @ sign, must have a number and use at leaast 3 capitals");
System.out.println("First please input you first name.");
String passWord;
String firstName;
String lastName;
String firstNameLower;
String lastNameLower;
String passWordLower;
firstName = james.nextLine();
firstNameLower = firstName.toLowerCase();
System.out.println("Also please input you Last name.");
lastName = james.nextLine();
lastNameLower = lastName.toLowerCase();
System.out.println("Please enter your password now");
passWord = james.nextLine();
passWordLower = passWord.toLowerCase();
if (passWordLower.length() < 9) {
while (passWordLower.length() > 20) {
System.out.println("Sorry but your password is greater than or equal too 20 characters, please try a differnent password");
passWord = james.nextLine();
}
}
if (passWordLower.indexOf(firstNameLower) != -1 || (passWordLower.indexOf(lastNameLower) != -1)) {
System.out.println("Sorry but you can not use your first or your last name in the password. ");
}
if (passWordLower.contains("@")) {} else {
System.out.println("Sorry but you must use a @ symbol in your password.");
}
if (passWordLower.contains("_")) {} else {
System.out.println("Sorry but you must use a underscore in your password.");
}
int counter = 0;
for (int i = 0; i < passWordLower.length(); i++) {
if (Character.isDigit(passWordLower.charAt(i))) {
counter++;
}
}
if (counter < 3) {
System.out.println("Sorry but you need to have at least 3 numbers in your password.");
}
}
}
【问题讨论】:
-
对不起,还是有点知道不知道如何正确插入看起来不错的代码。但我不认为那样看起来太糟糕了
-
if (passWordLower.contains("@")) {} else {可以替换为if (!passWordLower.contains("@")) { -
使用字符串缓冲区并将所有消息附加到 if 块中,最后一次全部打印出来。
-
谢谢,Shmosel。为我节省了一些额外且不需要的代码
-
我想我可以在它周围放一个大的while循环,但我不太确定。?