密码验证合格

import java.util.Scanner;

public class Test57 {
	/*
	题目描述
	密码要求:
	 
	1.长度超过8位
	2.包括大小写字母.数字.其它符号,以上四种至少三种
	3.不能有相同长度超2的子串重复 
	说明:长度超过2的子串

	输入描述:
	一组或多组长度超过2的子符串。每组占一行
	输出描述:
	如果符合要求输出:OK,否则输出NG
	输入例子:
	021Abc9000
	021Abc9Abc1
	021ABC9000
	021$bc9000
	输出例子:
	OK
	NG
	NG
	OK
	*/
	public static void main(String[] args) {
		getRightOrNot();
	}
	public static void getRightOrNot(){
		Scanner scn=new Scanner(System.in);
		while(scn.hasNext()){
			String str=scn.nextLine();
			//System.out.println();
			if(panDuan(str)){
				System.out.println("OK");
			}else {
				System.out.println("NG");
			}
		}
	}
	public static boolean panDuan(String str){
		int flagDaXie=0;
		int flagXiaoXie=0;
		int flagShuZi=0;
		int flagQiTa=0;
		int count=0;
		if(str.length()<=8){
			return false;
		}
		for (int i = 0; i < str.length(); i++) {
			if(flagDaXie==0&&str.charAt(i)>='A'&&str.charAt(i)<='Z'){
				flagDaXie++;
			}
			if(flagXiaoXie==0&&str.charAt(i)>='a'&&str.charAt(i)<='z'){
				flagXiaoXie++;
			}
			if(flagShuZi==0&&str.charAt(i)>='0'&&str.charAt(i)<='9'){
				flagShuZi++;
			}
			if(flagQiTa==0&&!(str.charAt(i)>='a'&&str.charAt(i)<='z')
			   &&!(str.charAt(i)>='A'&&str.charAt(i)<='Z')
			   &&!(str.charAt(i)>='0'&&str.charAt(i)<='9')){
				flagQiTa++;
			}
			
		}
		if(flagDaXie+flagXiaoXie+flagShuZi+flagQiTa<3){
			return false;
		}
		for (int i = 0; i +2< str.length(); i++) {
			if(str.substring(0, i).contains(str.substring(i,i+3))
			   ||str.substring(i+3).contains(str.substring(i,i+3))){
				return false;
			}
		}
		
		return true;
	}
}

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值