最近好久没写博客了,偷懒一时爽,一直偷懒一直爽,嘿嘿嘿~
闲来无事编个小程序,大家猜猜数字(肯定不是1000,我只是举个例子),代码如下:
public static void main(String[] args) {
String password="1000";
System.out.println(checkPassword(password));
}
private static boolean checkPassword(String password) {
if(password==null|| "".equals(password)){
System.out.println("password is empty");
return false;
}
if(password.length()!=4){
System.out.println("password length is error,must 4");
return false;
}
try{
Integer.parseInt(password);
}catch (NumberFormatException e){
System.out.println("password is not number");
e.printStackTrace();
return false;
}
int p1=Integer.parseInt(password.substring(0,1));
int p2=Integer.parseInt(password.substring(1,2));
int p3=Integer.parseInt(password.substring(2,3));
int p4=Integer.parseInt(password.substring(3));
boolean a = p2 == (p1 ^ p2 & p3 ^ p4);
if(!a){
System.out.println("a.And xor operation error");
return false;
}
boolean b = (p1 << p2 ^ p4 << p3) == (p2 << p1 | p4 << p3);
if(!b){
System.out.println("b.Shift operation error");
return false;
}
boolean c = (p1 == p2) || (p2 == p3) || p3 != (p1 + p2) || (p2 != (p1 + p4)) || p3 != (p1 | p2) || p3 != (p1 | p3) || p3 != (p2 | p3);
if(c){
System.out.println("c.Base operation error");
}
return !c;
}