每日作业20200608 - 安全密码的判定

题目

最近网络盗号严重, 张三又喜欢开外挂(大家不要学)
    于是张三打算出一个安全的密码, 避免开外挂后被盗号
    请各位小伙伴帮忙, 判定一下张三的密码是否安全

安全密码的判定:
    1. 长度在8~16之间
    2. 开头必须是大写
    3. 包含最少包含一个小写字母, 一个数字, 一个特殊符号
    特殊符号包括~!@#$%.
    
样例输入:
    Aa123!!!!!
样例输出:
    true

分析

小写字母 a-z:97-122
大写字母 A-Z:65-90
	数字 0-948-57

1. 开头必须是大写	'A' <= str.charAt(0) && str.charAt(0) <= 'Z')	

代码

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Homework0608 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入密码: ");
        String str = sc.nextLine();

        boolean result = method(str);
        System.out.println(result == true ? "密码安全" : "密码危险");
    }

    /**
     * 方法
     * @param str
     * @return
     */
    public static boolean method(String str) {
        String s = "~!@#$%";    //特殊字符串
        boolean result = false; //结果
        int count1 = 0; //计数,是否包含小写字母
        int count2 = 0; //计数,是否包含数字
        int count3 = 0; //计数,是否包含特殊字符

        if (8 <= str.length() && str.length() <= 16){       //长度在8~16之间
            if ( 'A' <= str.charAt(0) && str.charAt(0) <= 'Z'){     //开头必须是大写 A-Z:65-90
                for (int i = 0; i < str.length(); i++){
                    char ch = str.charAt(i);
                    if ( 97 <= ch && ch <= 122 ){   //包含小写字母 a-z:97-122
                        count1++;
                        continue;
                    }
                    if ( 48 <= ch && ch <= 57 ){    //包含数字 0-9:48-57
                        count2++;
                        continue;
                    }
                    if (s.contains(str.valueOf(ch))){   //包含特殊符号 ~!@#$%
                        count3++;
                        continue;
                    }
                }
                if (count1 > 0 && count2 > 0 && count3 > 0){
                    result = true;  //最少包含一个小写字母, 一个数字, 一个特殊符号
                }
            }
        }
        return result;
    }

}

运行结果

请输入密码: Aa123!!!!!
密码安全

你可能感兴趣的:(每日作业,java)