密码验证合格程序

Posted 新生代黑马

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了密码验证合格程序相关的知识,希望对你有一定的参考价值。

题目描述

  密码要求:

  1.长度超过8位

  2.包括大小写字母.数字.其它符号,以上四种至少三种

  3.不能有相同长度超2的子串重复

输入描述

  一组或多组长度超过2的子符串。每组占一行

输出描述

  如果符合要求输出:OK,否则输出NG

输入例子

021Abc9000
021Abc9Abc1
021ABC9000
021$bc9000

输出例子

OK
NG
NG
OK

测试代码

 1 import java.util.Scanner;
 2 
 3 public class Main {
 4     // 长度超过8位
 5     public static boolean checkLength(String password) {
 6         if(password.equals(null) || password.length() <= 8){
 7             return false;
 8         }
 9         return true;
10     }
11     // 包括大小写字母.数字.其它符号,以上四种至少三种
12     public static boolean checkCharKinds(String password) {
13         int uppercase = 0, lowercase = 0, digit = 0, other = 0;
14         char[] ch = password.toCharArray();
15         for(int i = 0; i < password.length(); i++) {
16             if(Character.isUpperCase(ch[i])) {
17                 uppercase = 1;
18             } else if(Character.isLowerCase(ch[i])) {
19                 lowercase = 1;
20             } else if(Character.isDigit(ch[i])) {
21                 digit = 1;
22             } else {
23                 other = 1;
24             }
25         }
26         if(uppercase + lowercase + digit + other >= 3) {
27             return true;
28         }
29         return false;
30     }
31     // 不能有相同长度超2的子串重复
32     public static boolean checkCharRepeat(String password) {
33         for(int i = 0; i < password.length() - 2; i++) {
34             String str = password.substring(i, i + 3);
35             for(int j = i + 1; j < password.length() - 2; j++) {
36                 if(password.substring(j).contains(str)) {
37                     return false;
38                 }
39             }
40         }
41         return true;
42     }
43 
44     public static void main(String[] args) {
45         Scanner sc = new Scanner(System.in);
46         while (sc.hasNextLine()) {            
47             String password = sc.nextLine();
48             if(checkLength(password) && checkCharKinds(password) && checkCharRepeat(password)){
49                 System.out.println("OK");
50             } else {
51                 System.out.println("NG");
52             }
53         }
54         sc.close();
55     }
56 }

 

以上是关于密码验证合格程序的主要内容,如果未能解决你的问题,请参考以下文章

密码验证合格程序

密码验证合格程序

华为python机试题目:计算字符个数简单错误记录简单密码进制转换句子逆序密码验证合格程序

密码验证合格程序(Python)

1-20密码验证合格程序

华为机试HJ20:密码验证合格程序