1-20密码验证合格程序

Posted code666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1-20密码验证合格程序相关的知识,希望对你有一定的参考价值。

题目描述

密码要求: 

1.长度超过8位 

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

3.不能有相同长度超2的子串重复

说明:长度超过2的子串

输入描述:

一组或多组长度超过2的子符串。每组占一行

输出描述:

如果符合要求输出:OK,否则输出NG

输入例子:
021Abc9000
021Abc9Abc1
021ABC9000
021$bc9000

输出例子:
OK
NG
NG
OK

代码:
import java.util.*;
public class Main{
 public static void main(String[] args){
  
  Scanner sc=new Scanner(System.in);
  while(sc.hasNextLine()){
   int count=0;
   boolean flag=false,flag1=false;
  String s =sc.nextLine();
  if(s.length()>8){
   for(int i=0;i<s.length();i++){
    if(s.charAt(i)>=‘0‘&&s.charAt(i)<=‘9‘){
     count++;
        break;
    }
    else continue;
    }
   for(int i=0;i<s.length();i++){
    if(s.charAt(i)>=‘A‘&&s.charAt(i)<=‘Z‘){
     count++;
        break;
    }
    else continue;
    }
   for(int i=0;i<s.length();i++){
    if(s.charAt(i)>=‘a‘&&s.charAt(i)<=‘z‘){
     count++;
        break;}
    else continue;
    }
   for(int i=0;i<s.length();i++){
    if(!((s.charAt(i)>=‘0‘&&s.charAt(i)<=‘9‘)||(s.charAt(i)>=‘A‘&&s.charAt(i)<=‘Z‘)||(s.charAt(i)>=‘a‘&&s.charAt(i)<=‘z‘))){
     count++;
        break;
    }
    else continue;
    }
    if(count>=3){
     flag=true;
     while(flag){
      for(int i=0;i<=s.length()-4;i++){
       String a=s.substring(i, i+3);
       for(int j=i+1;j<=s.length()-3;j++){
        String b=s.substring(j, j+3);
        if(a.equals(b)){
            flag1=true;
            break;
        }
        else continue;
       }
       if(flag1){
        System.out.println("NG");
        flag=false;
        break;
       }
       else continue;
      }
      if(flag1==false){
        System.out.println("OK");
           flag=false;
      }
      
     }
    }
   else System.out.println("NG");
   
  }
  else System.out.println("NG");
  
  }
 }
}

收获:(1)允许输入多行:int count=0;最好放在while(sc.hasNextLine())后面,否则会记录count上次运行的值。
(2)截取字符串 String a=s.substring(i, i+3);
                 public String substring(int beginIndex, int endIndex)
                第一个int为开始的索引,对应String数字中的开始位置,
                第二个是截止的索引位置,对应String中的结束位置
               1、取得的字符串长度为:endIndex - beginIndex;
               2、从beginIndex开始取,到endIndex结束,从0开始数,其中不包括endIndex位置的字符(注意)。
               (3)比较字符串是否相等,错误写法if(a==b)
                 正确写法if(a.equals(b))

以上是关于1-20密码验证合格程序的主要内容,如果未能解决你的问题,请参考以下文章

华为机试题 HJ20密码验证合格程序

密码验证合格程序

密码验证合格程序(Python)

密码验证合格程序

华为python机试题目:计算字符个数简单错误记录简单密码进制转换句子逆序密码验证合格程序

牛客 HJ20 密码验证合格程序