密码验证合格程序(算法)

简介: 密码验证合格程序(算法)

/**  

* 021Abc9Abc1  

* 1.长度超过8位  

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

* 3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)

*/


public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        validation(str);
    }
    private static void validation(String str) {
        //  1.长度超过8位
        if (str.length() <= 8) {
            System.out.println("不合格");
            return;
        }
        // 2.包括大小写字母.数字.其它符号,以上四种至少三种
        int little = 0;
        int max = 0;
        int num = 0;
        int other = 0;
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) <= 'z' && str.charAt(i) >= 'a') {
                little = 1;
            } else if (str.charAt(i) <= 'Z' && str.charAt(i) >= 'A') {
                max = 1;
            } else if (str.charAt(i) <= '9' && str.charAt(i) >= '0') {
                num = 1;
            } else {
                other = 1;
            }
        }
        if (little + max + num + other < 3) {
            System.out.println("不合格");
            return;
        }
        // 3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)
        boolean flag = getTwoLength(str, 0, 2);
        if (!flag) {
            System.out.println("不合格");
        } else {
            System.out.println("合格");
        }
    }
    private static boolean getTwoLength(String str, int s, int e) {
        if(e > str.length()){
            return true;
        }
        if (!str.substring(e).contains(str.substring(s, e))) {
            s = s + 1;
            e = e + 1;
            return getTwoLength(str, s, e);
        } else {
            return false;
        }
    }
相关文章
|
2月前
|
存储 安全 算法
|
25天前
|
监控 算法 Java
Java虚拟机(JVM)使用多种垃圾回收算法来管理内存,以确保程序运行时不会因为内存不足而崩溃。
【6月更文挑战第20天】Java JVM运用多种GC算法,如标记-清除、复制、标记-压缩、分代收集、增量收集、并行收集和并发标记,以自动化内存管理,防止因内存耗尽导致的程序崩溃。这些算法各有优劣,适应不同的性能和资源需求。垃圾回收旨在避免手动内存管理,简化编程。当遇到内存泄漏,可以借助VisualVM、JConsole或MAT等工具监测内存、生成堆转储,分析引用链并定位泄漏源,从而解决问题。
30 4
|
18天前
|
机器学习/深度学习 并行计算 搜索推荐
程序技术好文:桶排序算法及其Java实现
程序技术好文:桶排序算法及其Java实现
11 0
|
18天前
|
存储 人工智能 算法
程序与技术分享:Acwing算法笔记
程序与技术分享:Acwing算法笔记
|
18天前
|
人工智能 算法
程序技术好文:算法与数据结构
程序技术好文:算法与数据结构
|
18天前
|
算法 vr&ar C语言
程序技术好文:欧几里德算法
程序技术好文:欧几里德算法
|
18天前
|
算法 数据挖掘 计算机视觉
程序技术好文:聚类算法一(Kmeans、层次类聚、谱类聚)
程序技术好文:聚类算法一(Kmeans、层次类聚、谱类聚)
15 0
|
19天前
|
算法 JavaScript 安全
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
11 0
|
19天前
|
算法 vr&ar
程序技术好文:韩信点兵算法
程序技术好文:韩信点兵算法
|
19天前
|
算法 JavaScript 安全
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
12 0