生成至少2处连续重复数字的6位随机数
生成至少2处连续重复数字的6位随机数
效果:115977、107722、168833、133766、123300、165552、123322、111228、114432、112199、113335
运用场景:短信验证码。
不直接使用六位随机数的原因:重复数字,简便了用户的输入;同时,不降低安全性。
执行结果示例:
代码:
import java.util.Random; public class RandomUtils { /** * 生成6位随机数,其中,至少有2个叠数 * @return */ public static String _6_2(){ Random random = new Random(); int code = random.nextInt(900) + 1000; int repeatIndex1 = random.nextInt(4); int repeatIndex2 = random.nextInt(4); System.out.println("基础数:"+ code + ",重复位①:"+ (repeatIndex1+1) + ",重复位②:"+ (repeatIndex2+1)); char[] numChars = String.valueOf(code).toCharArray(); String result = ""; for (int i = 0; i < numChars.length; i++){ result = result + numChars[i]; if(i==repeatIndex1) { result = result + numChars[i]; } if(i==repeatIndex2) { result = result + numChars[i]; } } System.out.println("输出随机数:"+result); return result; } }