【发布时间】:2017-04-19 13:36:50
【问题描述】:
所以我一直在开发这个程序,它会提示用户输入密码,但密码必须至少有 8 个字符长,并且只能包含字母和数字。这是我的代码:
import java.util.Scanner;
public class Password {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("Please enter a password: ");
String password = input.nextLine();
boolean valid = true;
if (valid(password)) {
System.out.println("Password accepted!");
}
}
public static boolean valid(String password) {
if (password.length() < 8) {
System.out.println("Password must have at least eight characters.");
return false;
} else {
char c;
for (int i = 0; i < password.length(); i++) {
c = password.charAt(i);
if (password.matches("[0-9a-zA-Z]+")) {
return true;
} else {
System.out.println("Password must only contain letters and digits.");
return false;
}
}
return true;
}
}
}
我遇到的问题是,当我输入像 $$$ 这样的输入时,唯一的输出是“密码必须至少包含八个字符”,但我需要这个输出和“”密码只能包含字母和数字。”换句话说,我需要程序检查两个条件是否为假并显示两个输出。我该怎么做呢?
另外,如果您对如何改进我的程序有任何建议,那也会很有帮助。
谢谢!
【问题讨论】:
-
在
else语句中添加一个条件来检查输入的长度。 -
@Mena 我会试试的,谢谢!
标签: java string eclipse if-statement boolean