Java 小明同学最近开发了一个网站,在用户注册账户的时候,需要设置账户的密码

题目:小明同学最近开发了一个网站,在用户注册账户的时候,需要设置账户的密码,为了加强账户的安全性,小明对密码强度有一定要求:

1. 密码只能由大写字母,小写字母,数字构成;

2. 密码不能以数字开头;

3. 密码中至少出现大写字母,小写字母和数字这三种字符类型中的两种;

4. 密码长度至少为8

现在小明受到了n个密码,他想请你写程序判断这些密码中哪些是合适的,哪些是不合法的

输入:
输入一个数n,接下来有n(n≤100)行,每行一个字符串,表示一个密码,输入保证字符串中只出现大写字母,小写字母和数字,字符串长度不超过100。

输出:
输入n行,如果密码合法,输出YES,不合法输出NO

例如:
输入:
1
CdKfIfsiBgohWsydFYlMVRrGUpMALbmygeXdNpTmWkfyiZIKPtiflcgppuR
输出:
YES

代码:

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        while (n != 0) {
            String str = sc.next();
            char[] arr = new char[str.length()];
            arr = str.toCharArray();
            int count1 = 0;
            int count2 = 0;
            int count3 = 0;
            if (str.length() < 8) {
                System.out.println("NO,长度问题");
                n--;
                return;
            }
            if ('0' <= arr[0] && arr[0] <= '9') {
                System.out.println("NO,首字母是数字");
                n--;
                return;
            }
            for (int i = 0; i < str.length(); i++) {
                if ('0' <= arr[i] && arr[i] <= '9') {
                    count1++;
                }
                if ('a' <= arr[i] && arr[i] <= 'z') {
                    count2++;
                }
                if ('A' <= arr[i] && arr[i] <= 'Z') {
                    count3++;
                }
            }
            if(count1>0&&count2>0 || count1>0&&count3>0 ||count2>0&&count3>0) {
                System.out.println("YES");
                n--;
            }else {
                System.out.println("NO");
                n--;
            }
        }
    }
}

版权声明:本文为a215012954原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。