从键盘录入一个字符串作为密码,打印密码强度。 int n1 = 0; // 字母个数 int n2 = 0; // 数字个数 int n3 = 0; // 其他字符的个数 判断密码强度:只有一类字符,则密码弱;有两类字符,密码一般;有三类字符,密码强
时间: 2024-01-14 16:02:13 浏览: 87
好的,我已经理解了你的问题。下面是可以实现你需求的 Java 代码:
```java
import java.util.Scanner;
public class PasswordStrength {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入密码:");
String password = scanner.nextLine();
int n1 = 0; // 字母个数
int n2 = 0; // 数字个数
int n3 = 0; // 其他字符的个数
for (int i = 0; i < password.length(); i++) {
char c = password.charAt(i);
if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') {
n1++;
} else if (c >= '0' && c <= '9') {
n2++;
} else {
n3++;
}
}
int count = 0;
if (n1 > 0) {
count++;
}
if (n2 > 0) {
count++;
}
if (n3 > 0) {
count++;
}
if (count == 1) {
System.out.println("密码弱");
} else if (count == 2) {
System.out.println("密码一般");
} else {
System.out.println("密码强");
}
}
}
```
这个程序首先通过 `Scanner` 类从键盘读入密码字符串,然后使用三个计数器分别统计字母、数字和其他字符的个数。接着,根据计数器的值判断密码强度,并将结果打印出来。
需要注意的是,在判断一个字符是否是字母或数字时,可以使用字符的 ASCII 码值进行比较。具体而言,小写字母的 ASCII 码值范围是 `97` 到 `122`,大写字母的 ASCII 码值范围是 `65` 到 `90`,数字的 ASCII 码值范围是 `48` 到 `57`。
阅读全文