题解 | #密码强度等级#
密码强度等级
https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String password = scanner.nextLine(); char[] chararr = password.toCharArray(); int score = 0; if (chararr.length < 4 || chararr.length == 4) { score = 5; } else if (chararr.length >= 5 && chararr.length <= 7) { score = 10; } else if (chararr.length >= 8) { score = 25; } int endscore = score + getpassword2(chararr) + getpassword3(chararr)+ getpassword4(chararr) + getpassword5(chararr); if(endscore >= 90){ System.out.println("VERY_SECURE"); } else if(endscore >= 80){ System.out.println("SECURE"); } else if(endscore >= 70){ System.out.println("VERY_STRONG"); } else if(endscore >= 60){ System.out.println("STRONG"); } else if(endscore >= 50){ System.out.println("AVERAGE"); } else if(endscore >= 25){ System.out.println("WEAK"); } else if(endscore >= 0){ System.out.println("VERY_WEAK"); } } public static int getpassword2(char[] chararr) { int score1 = 0; int score2 = 0; //是否字母 for (int i = 0; i < chararr.length; i++) { if (chararr[i] >= 'a' && chararr[i] <= 'z') { score1 = 0; score1 += 10; } if (chararr[i] >= 'A' && chararr[i] <= 'Z') { score2 = 0; score2 += 10; } } return score1 + score2; } public static int getpassword3(char[] chararr) { int score1 = 0; int score2 = 0; //是否数字 for (int i = 0; i < chararr.length; i++) { if (chararr[i] >= '0' && chararr[i] <= '9' && score1 == 10) { score2 = 10; break; } if (chararr[i] >= '0' && chararr[i] <= '9') { score1 += 10; } } return score1 + score2; } public static int getpassword4(char[] chararr) { int score1 = 0; int score2 = 0; //是否数字 for (int i = 0; i < chararr.length; i++) { if (((chararr[i] >= 0x21 && chararr[i] <= 0x2F) || (chararr[i] >= 0x3A && chararr[i] <= 0x40) || (chararr[i] >= 0x5B && chararr[i] <= 0x60) || (chararr[i] >= 0x7B && chararr[i] <= 0x7E)) && score1 == 10) { score2 += 15; break; } if ((chararr[i] >= 0x21 && chararr[i] <= 0x2F) || (chararr[i] >= 0x3A && chararr[i] <= 0x40) || (chararr[i] >= 0x5B && chararr[i] <= 0x60) || (chararr[i] >= 0x7B && chararr[i] <= 0x7E)) { score1 += 10; } } return score1 + score2; } public static int getpassword5(char[] chararr) { int reward=0; if(getpassword2(chararr)>0&&getpassword3(chararr)>0){reward=2;} if(getpassword2(chararr)>0&&getpassword3(chararr)>0&&getpassword3(chararr)>0){reward=3;} if(getpassword2(chararr)==20&&getpassword3(chararr)>0&&getpassword3(chararr)>0){reward=5;} return reward; } }