题目链接 点此跳转
题目要求:
解题思路:
将每个加分项都写成一个方法,思路逻辑清晰,依次完成每一个加分方法,再写一个比较等级的方法,最后再main函数里面输出即可:
代码如下:
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Stack;
public class TestDemo {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
while (scanner.hasNext()){
String password=scanner.nextLine();
System.out.println(getLevel(password));
}
scanner.close();
}
public static String getLevel(String password){
int sum=0;
sum+=lengthAdd(password);
sum+=zmAdd(password);
sum+=numAdd(password);
sum+=symbolAdd(password);
sum+=rewordAdd(password);
if (sum>=90){
return "VERY_SECURE";
}else if (sum>=80){
return "SECURE";
}else if (sum>=70){
return "VERY_STRONG";
}else if (sum>=60){
return "STRONG";
}else if (sum>=50){
return "AVERAGE";
}else if (sum>=25){
return "WEAK";
}else {
return "VERY_WEAK";
}
}
public static int lengthAdd(String password){
if (password.length()<=4){
return 5;
}else if (password.length()>=5 && password.length()<=7){
return 10;
}else {
return 25;
}
}
public static int zmAdd(String password){
int lower=0;
int upper=0;
for (int i = 0; i < password.length(); i++) {
String ch=String.valueOf(password.charAt(i));
if (ch.matches("[A-Z]")){
upper++;
}else if (ch.matches("[a-z]")){
lower++;
}
}
if (upper!=0 && lower!=0){
return 20;
}else if ((lower!=0 && upper==0) || (lower==0 && upper!=0)){
return 10;
}else {
return 0;
}
}
public static int numAdd(String password){
int num=0;
for (int i = 0; i < password.length(); i++) {
if (password.charAt(i)>='0' && password.charAt(i)<='9'){
num++;
}
}
if (num==0){
return 0;
}else if (num==1){
return 10;
}else {
return 20;
}
}
public static int symbolAdd(String password){
int numSymbol=0;
for (int i = 0; i < password.length(); i++) {
char ch=password.charAt(i);
if ((ch>=0x21 && ch<=0x2F) || (ch>=0x3A && ch<=0x40) || (ch>=0x5B && ch<=0x60) || (ch>=0x7B && ch<=0x7E)){
numSymbol++;
}
}
if (numSymbol==0){
return 0;
}else if (numSymbol==1){
return 10;
}else{
return 25;
}
}
public static int rewordAdd(String password){
int numPsd=numAdd(password);
int zmPsd=zmAdd(password);
int symbolPsd=symbolAdd(password);
if (zmPsd!=0 && numPsd!=0 && symbolPsd==0){
return 2;
} else if (zmPsd==10 && numPsd!=0 && symbolPsd!=0){
return 3;
}else if (zmPsd==20 && numPsd!=0 && symbolPsd!=0){
return 5;
}else {
return 0;
}
}
}
- over