【发布时间】:2017-09-12 05:29:17
【问题描述】:
一些网站对密码有一定的规定。我正在编写一种检查字符串是否为有效密码的方法。
密码的规则是:
- 密码必须至少包含八个字符
- 密码仅由字母和数字组成
- 密码必须至少包含两位数
我想出了大部分代码,我想我现在得到了一些正确的概念,无论我输入什么密码,它都会打印出“无效密码”..我尝试运行调试器但真的很困惑。
下面是我的代码:
import java.util.Scanner;
public class practice {
public static void main(String[] args) {
System.out.print("Enter a password");
Scanner input = new Scanner(System.in);
String password = input.nextLine();
boolean isCorrect = checkPassword(password);
if(isCorrect)
{
System.out.println("Valid Password");
}
else
{
System.out.println("Invalid Password");
}
}
//this method checks the password
public static boolean checkPassword(String password)
{
int countDigit = 0;
if (password.length() >=8 ){
return false;
}
for(int i = 0; i <password.length(); i++)
{
if(!(Character.isLetterOrDigit(password.charAt(i))))
{
return false;
}
}
for(int i = 0; i<password.length(); i++){
if((Character.isDigit(password.charAt(i)))){
countDigit = countDigit + 1;
}
}
if (countDigit >= 2){
return true;
}
else
return false;
}
}
【问题讨论】:
-
你并不总是需要调试器来调试。我会首先在每个
return false;行输出一条独特的消息,看看哪个被触发了。 -
是的,刚刚想通了..
-
很高兴听到这个消息。
标签: java string eclipse jgrasp