说明
我的需求是,生成任意相邻2位数重复的6位数密码
思路
先生成一个1位随机数。再随机生成一个5位数的随机数。如果第一个随机数在第二个随机数里查到相同的,就在这个数的后面插入第一个随机数,没有相同的话,再随机生成一个1位随机数
代码
public static void main(String[] args) {
String password = null;
int random1 = (int) ((Math.random()*9+1));
System.out.println(random1);
int random2 = (int) ((Math.random()*9+1)*10000);// 生成5位数的随机数
System.out.println(random2);
String num1 = random1 + “”;
String num2 = random2 + “”;
int location = 0;
do {
if (num2.contains(num1)) {
location = num2.indexOf(num1);
StringBuilder sb = new StringBuilder(num2);
password = sb.insert(location, num1) + "";
} else {
random1 = (int) ((Math.random()*9+1));
num1 = random1 + "";
if (num2.contains(num1)) {
location = num2.indexOf(num1);
StringBuilder sb = new StringBuilder(num2);
password = sb.insert(location, num1) + "";
}
}
} while (!num2.contains(num1));
System.out.println(password);
}