java利用数字和字母随机组合生成随机数

思路:如果区分大小写的话,那么大写算是一类,小写算是一类,数字算是一类,
那么通过    Random rand=new Random();这行代码随机生成代表每一类的的生成器。
如果随机产生的值为0,则产生的是数字,如果随机产生的是1,则代表要产生大写字母,
如果随机产生的值为2,则代表要产生小写字母种类。
这样,每一位产生的种类都是随机的,每一类中具体产生的内容则用另一个
随机生成器来随机生成。循环要生成的长度,即可产生大小写和数字组合的随机数了。
注:这里的字母产生需要先产生ascii码对应的整数型,然后将ascii码对应的整数值
进行转换成对应的字符类型即可。

代码如下:

 //根据指定长度生成字母和数字的随机数
    //0~9的ASCII为48~57
    //A~Z的ASCII为65~90
    //a~z的ASCII为97~122
    public  String createRandomCharData(int length)
    {
        StringBuilder sb=new StringBuilder();
        Random rand=new Random();//随机用以下三个随机生成器
        Random randdata=new Random();
        int data=0;
        for(int i=0;i<length;i++)
        {
            int index=rand.nextInt(3);
            //目的是随机选择生成数字,大小写字母
            switch(index)
            {
                case 0:
                    data=randdata.nextInt(10);//仅仅会生成0~9
                    sb.append(data);
                    break;
                case 1:
                    data=randdata.nextInt(26)+65;//保证只会产生65~90之间的整数
                    sb.append((char)data);
                    break;
                case 2:
                    data=randdata.nextInt(26)+97;//保证只会产生97~122之间的整数
                    sb.append((char)data);
                    break;
            }
        }
        String result=sb.toString();
        logger.info("生成的随机数兑换码为{}",result);
        return result;
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值