说明
我的需求是,生成任意相邻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);
}
本文介绍了一种生成包含特定模式的随机密码的方法,通过在生成的5位随机数中查找与预设的1位随机数相匹配的位置,然后将该1位数插入到匹配位置前,确保了密码中存在相邻两位数重复的特性。
172万+

被折叠的 条评论
为什么被折叠?



