批量生成优惠码

//公司做活动,需要批量生成n个不重复多位验证码,简单写了个小程序,在这做个记录,今后有空可以继续优化


 public static void main(String[] args) {



        String validateCode = "";


        //已存在的验证码

        int i=0;
        Map codeMap = new HashMap();
        while(i<50000){//生成n个验证码
            validateCode = getRandom(6);


            System.out.print("i==" + i + "===");
            System.out.println(validateCode);


            //判断生成的验证码是否存在,不存在则写到map
            if("".equals(codeMap.get(validateCode)) || codeMap.get(validateCode)==null){
                codeMap.put(validateCode,validateCode);
                i++;
            }
        }


  /*      Set set = codeMap.entrySet();
        Iterator it = set.iterator();
        while (it.hasNext()) {
            Map.Entry entry = (Map.Entry) it.next();
            String key = (String) entry.getKey();
            String value = (String) entry.getValue();
            System.out.println(key + "=" + value);
        }*/






    }


    private static String getRandom(int codeCount) {
        StringBuffer randomCodeRes = new StringBuffer();
        char[] codeSequenceChar = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
                'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
                'X', 'Y', 'Z','0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
        };


        // 创建一个随机数生成器类
        Random random = new Random();
        //随机产生,验证码由几个数字、几个字母组成
        int charNum  =6;


        for (int i = 0; i < charNum; i++) {
            // 得到随机产生的验证码字母。
            String strRand = String.valueOf(codeSequenceChar[random.nextInt(codeSequenceChar.length)]);
            // 将产生的六个随机数组合在一起。
            randomCodeRes.append(strRand);
        }


        return randomCodeRes.toString();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值