1. 程式人生 > >java利用數字和字母隨機組合生成隨機數

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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!