生成至少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;
    }
}

 

posted @ 2024-09-06 21:35  BGStone  阅读(7)  评论(0编辑  收藏  举报