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