package randomdata;
import java.util.Random;
public class RandomCharData {
//可以將字符轉換賦值給int類型,查看其ASCII碼
public static void main(String[] args) {
//隨機生成純數字
for(int i=0;i<15;i++)
createData(20);
System.out.println("---------------");
//生成數字字母
for(int i=0;i<15;i++)
createRandomCharData(20);
}
//根據指定長度生成字母和數字的隨機數
//0~9的ASCII爲48~57
//A~Z的ASCII爲65~90
//a~z的ASCII爲97~122
public static void 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();
System.out.println(result);
}
//根據指定長度生成純數字的隨機數
public static void createData(int length) {
StringBuilder sb=new StringBuilder();
Random rand=new Random();
for(int i=0;i<length;i++)
{
sb.append(rand.nextInt(10));
}
String data=sb.toString();
System.out.println(length+" random data: "+data);
}
}
//生成隨機數字和字母,
public static String getStringRandom(int length) {
String val = "";
Random random = new Random();
//參數length,表示生成幾位隨機數
for(int i = 0; i < length; i++) {
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
//輸出字母還是數字
if( "char".equalsIgnoreCase(charOrNum) ) {
//輸出是大寫字母還是小寫字母
int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;
val += (char)(random.nextInt(26) + temp);
} else if( "num".equalsIgnoreCase(charOrNum) ) {
val += String.valueOf(random.nextInt(10));
}
}
return val;
}