**6.18(检测密码)一些网站对于密码具有一些规则。编写一个方法,检测字符串是否是一个有效密码。假定密码规则如下:
- 密码必须至少8位字符。
- 密码仅能包含字母和数字。
- 密码必须包含至少两个数字。
编写一个程序,提示用户输入一个密码,如果符合规则,则显示Valid Password,否则显示Invalid Password。
**6.18(Check password) Some websites impose certain rules for passwords. Write a method that checks whether a string is a valid password. Suppose the password rules are as follows:
- A password must have at least eight characters.
- A password consists of only letters and digits.
- A password must contain at least two digits.
Write a program that prompts the user to enter a password and displays Valid Password if the rules are followed or Invalid Password otherwise.
下面是参考答案代码:
import java.util.*;
public class CheckPasswordQuestion18 {
public static void main(String[] args) {
String password;
Scanner inputScanner = new Scanner(System.in);
System.out.print("Enter a password: ");
password = inputScanner.nextLine();
if(checkPassword(password))
System.out.println("Valid Password");
else
System.out.println("Invalid Password");
inputScanner.close();
}
public static boolean checkPassword(String password)
{
if(checkPasswordLength(password) && checkPasswordNumber(password)
&& checkPasswordDigits(password))
return true;
else
return false;
}
public static boolean checkPasswordLength(String password)
{
if(password.length() >= 8)
return true;
else
return false;
}
public static boolean checkPasswordNumber(String password)
{
int number = 0;
for(int i = 0;i < password.length()-1;i++)
if(Character.isDigit(password.charAt(i)))
number++;
if(number >= 2)
return true;
else
return false;
}
public static boolean checkPasswordDigits(String password)
{
for(int i = 0;i < password.length();i++)
if(!Character.isLetterOrDigit(password.charAt(i)))
return false;
return true;
}
}
运行效果:
注:编写程序要养成良好习惯
1.文件名要用英文,具体一点
2.注释要英文
3.变量命名要具体,不要抽象(如:a,b,c等等),形式要驼峰化
4.整体书写风格要统一(不要这里是驼峰,那里是下划线,这里的逻辑段落空三行,那里相同的逻辑段落空5行等等)
5.普通变量,方法名要小驼峰,类名要大驼峰,常量要使用全部大写加上下划线命名法
6.要学习相应的代码编辑器的一些常用快捷键,如:快速对齐等等