题解HJ87 | #密码强度等级#
密码强度等级
https://www.nowcoder.com/practice/52d382c2a7164767bca2064c1c9d5361
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String s = in.nextLine(); int score = 0; int upperCharCount = 0; int lowerCharCount = 0; int numCount = 0; int signCount = 0; for (int i = 0; i < s.length(); i++) { if (s.charAt(i) >= 'a' && s.charAt(i) <= 'z') { lowerCharCount++; } if (s.charAt(i) >= 'A' && s.charAt(i) <= 'Z') { upperCharCount++; } if (s.charAt(i) >= '0' && s.charAt(i) <= '9') { numCount++; } if (Integer.valueOf(s.charAt(i)) >= 0x21 && Integer.valueOf(s.charAt(i)) <= 0x2f) { signCount++; } if (Integer.valueOf(s.charAt(i)) >= 0x3A && Integer.valueOf(s.charAt(i)) <= 0x40) { signCount++; } if (Integer.valueOf(s.charAt(i)) >= 0x5B && Integer.valueOf(s.charAt(i)) <= 0x60) { signCount++; } if (Integer.valueOf(s.charAt(i)) >= 0x7B && Integer.valueOf(s.charAt(i)) <= 0x7E) { signCount++; } } //密码长度 if (s.length() <= 4) { score += 5; } else if (s.length() >= 5 && s.length() <= 7) { score += 10; } else { score += 25; } //字母 if (upperCharCount == 0 && lowerCharCount == 0) { score += 0; } else if ((upperCharCount == 0 && lowerCharCount > 0) || (upperCharCount > 0 && lowerCharCount == 0)) { score += 10; } else if (upperCharCount > 0 && lowerCharCount > 0) { score += 20; } //数字 if (numCount == 0) { score += 0; } else if (numCount == 1) { score += 10; } else if (numCount > 1) { score += 20; } //符号 if (signCount == 0) { score += 0; } else if (signCount == 1) { score += 10; } else if (signCount > 1) { score += 25; } //奖励 if ((upperCharCount > 0 && lowerCharCount > 0) && numCount > 0 && signCount > 0) { score += 5; } else if ((upperCharCount > 0 || lowerCharCount > 0) && numCount > 0 && signCount > 0) { score += 3; } else if ((upperCharCount > 0 || lowerCharCount > 0) && numCount > 0) { score += 2; } String result = new String(); if (score >= 90) { result = "VERY_SECURE"; } else if (score >= 80) { result = "SECURE"; } else if (score >= 70) { result = "VERY_STRONG"; } else if (score >= 60) { result = "STRONG"; } else if (score >= 50) { result = "AVERAGE"; } else if (score >= 25) { result = "WEAK"; } else if (score >= 0) { result = "VERY_WEAK"; } System.out.println(result); } }