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;
    }
--------------------- 
作者:王炎炎 
来源:CSDN 
原文:https://blog.csdn.net/wangyy130/article/details/80084376 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/u011555620/article/details/85840366