生成隨機(jī)字符串
看了一些同學(xué)的代碼,基本都是自己寫一個(gè)字符串庫,把大小寫字母還有0~9數(shù)字添加進(jìn)去,這樣做的話是不是漏掉了很多字符,比如一些標(biāo)點(diǎn)符號什么的,多以問下有沒有更全一點(diǎn)的方法,問度娘也基本都是這種自己添加的方法,這樣是不是漏掉了一部分字符,,所以說還算不上隨機(jī)......
看了一些同學(xué)的代碼,基本都是自己寫一個(gè)字符串庫,把大小寫字母還有0~9數(shù)字添加進(jìn)去,這樣做的話是不是漏掉了很多字符,比如一些標(biāo)點(diǎn)符號什么的,多以問下有沒有更全一點(diǎn)的方法,問度娘也基本都是這種自己添加的方法,這樣是不是漏掉了一部分字符,,所以說還算不上隨機(jī)......
2017-10-10
舉報(bào)
2017-10-11
/*我通過SACII碼實(shí)現(xiàn)的*/
List<String> sbList = new ArrayList<String>();
StringBuffer sb = new StringBuffer(); //用于存放隨機(jī)字符,形成隨機(jī)字符串
int x;
int j;
char m ;
String k;
Random ram = new Random();
for(int i = 0;i<10;i++){
do{
x = ram.nextInt(9)+1; //隨機(jī)生成字符串的長度
for(j=0 ; j<x ; j++){
m=(char) (ram.nextInt(126)+1); //將生成的字符添加到字符串?dāng)?shù)組中
sb.append(m);
}
k=sb.toString(); //將Buffer轉(zhuǎn)換成字符串
}while(sbList.contains(k)); //保證字符串不能重復(fù)
sbList.add(k); //添加字符串到List中
sb.delete(0, x); //刪除緩存中已有的字符
}