码迷,mamicode.com
首页 > 其他好文 > 详细

密码验证合格程序

时间:2016-05-22 23:19:15      阅读:535      评论:0      收藏:0      [点我收藏+]

标签:

题目描述

  密码要求:

  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 }

 

密码验证合格程序

标签:

原文地址:http://www.cnblogs.com/maxin/p/5518025.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!