莲花楼楼主


私信TA

用户名:dotcpp0719623

访问量:615

签 名:

总有人间一两风,填我十万八千梦

等  级
排  名 2136
经  验 2367
参赛次数 0
文章发表 31
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

有人在通往牛逼的路上一路狂奔

解题思路:

注意事项:

参考代码:

import java.util.*;
public class Main {
    public static void main(String[] args) {
    	Scanner scanner=new Scanner(System.in);
    	int n=Integer.parseInt(scanner.nextLine());
    	while(n-->0) {
    		String s=scanner.nextLine();
    		if(s.length()<8 || s.length()>16) {//长度不符合
    			System.out.println("NO");
    		}else {
    			boolean flag=false;//该密码是否安全的标志
    			int count=0;
    			//设立标志,使其判断大小写、数字、特殊字符等都只判断一次
    			boolean capitalLetter=true,lowerCaseLetter=true,digit=true,specialCharacter=true;
    			for(int i=0;i<s.length();i++) {
    				char c=s.charAt(i);
    				if(c>='A' && c<='Z' && capitalLetter) {
    					count++;
    					capitalLetter=false;
    				}else if(c>='a' && c<='z' && lowerCaseLetter) {
    					count++;
    					lowerCaseLetter=false;
    				}else if(c>='0' && c<='9' && digit) {
    					count++;
    					digit=false;
    				}else if((c=='~' || c=='!' || c=='@' || c=='#' || c=='$' || c=='%' || c=='^') && specialCharacter){
    					count++;
    					specialCharacter=false;    				
    				}
    				if(count==3) {
    					System.out.println("YES");
    					flag=true;
    					break;
    				}
    			}
    			if(!flag) {
    				System.out.println("NO");
    			}
    		}
    	}
    }
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区