在java中从键盘录入一个字符串作为密码,打印密码强度。 "Abc@123" int n0 = 0; // 大写字母个数 int n1 = 0; // 小写字母个数 int n2 = 0; // 数字个数 int n3 = 0; // 其他字符的个数 判断密码强度: 前提:长度大于8; 只有一类字符,则密码弱; 有两类字符,密码一般; 有三类字符,密码强; 有四类字符,密码很强
时间: 2024-02-20 22:59:35 浏览: 69
好的,以下是在Java中实现该需求的代码示例:
```java
import java.util.Scanner;
public class PasswordStrengthChecker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入密码:");
String password = scanner.nextLine();
int n0 = 0, n1 = 0, n2 = 0, n3 = 0;
for (int i = 0; i < password.length(); i++) {
char c = password.charAt(i);
if (Character.isUpperCase(c)) {
n0++;
} else if (Character.isLowerCase(c)) {
n1++;
} else if (Character.isDigit(c)) {
n2++;
} else {
n3++;
}
}
if (password.length() < 8) {
System.out.println("密码长度不足8位,密码弱");
} else if (n0 == password.length() || n1 == password.length() || n2 == password.length() || n3 == password.length()) {
System.out.println("密码只包含一类字符,密码弱");
} else if ((n0 > 0 && n1 > 0) || (n0 > 0 && n2 > 0) || (n0 > 0 && n3 > 0) || (n1 > 0 && n2 > 0) || (n1 > 0 && n3 > 0) || (n2 > 0 && n3 > 0)) {
System.out.println("密码包含两类字符,密码一般");
} else if ((n0 > 0 && n1 > 0 && n2 > 0) || (n0 > 0 && n1 > 0 && n3 > 0) || (n0 > 0 && n2 > 0 && n3 > 0) || (n1 > 0 && n2 > 0 && n3 > 0)) {
System.out.println("密码包含三类字符,密码强");
} else {
System.out.println("密码包含四类字符,密码很强");
}
}
}
```
这段Java代码会先从键盘读入一个字符串作为密码,然后统计其中包含的大写字母、小写字母、数字和其他字符的数量。接着,根据统计结果和密码长度,判断密码的强度,并打印出相应的提示信息。
需要注意的是,这里假设只有大小写字母、数字和其他字符四类字符,如果有其他字符类型,需要根据实际情况进行修改。
阅读全文