标签:密码 system 否则 system.in static 第一个 import while als
密码要求:
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);
标签:密码 system 否则 system.in static 第一个 import while als
原文地址:http://www.cnblogs.com/code666/p/6565611.html