當前位置:名人名言大全網 - 祝福短信 - 用java生成6位驗證碼,由大小寫字母組成,不能重復字符。

用java生成6位驗證碼,由大小寫字母組成,不能重復字符。

Random類可以用來生成random,但是不能重復。可以放在HashSet裏面,因為HashSet的值不能重復。參見如下代碼:

公共?班級?GenerateRandomLetterAndNum?{

公共?靜電?作廢?main(String[]?args)?{

?設置& lt字符串& gt?商店?=?getletterandnum(6);

?printSet(商店);

}

公共?靜電?設置& lt字符串& gt?getletterandnum(int?長度)?{

設置& lt字符串& gt?設置?=新?HashSet & lt字符串& gt();

為了什麽?(int?我?=?0;?我?& lt?長度;?i++)?{

字符串?價值?=?get random();

set.add(值);

}

如果?(set . size()& lt;長度)?{?//如果沒有生成6位

字符串?價值?=?get random();//繼續調用生成隨機數的方法。

set.add(值);

}

回歸?設置;

}

私人?靜電?字符串?getrandom()?{?//生成隨機字母和數字方法

字符串?價值?=?"";

隨機?隨機?=?新的?random();

int?gen?=?random . nextint(2);//0、1、2

字符串?夏洛納姆?=?gen?%?2?==?0“char”?:?”小水”;

如果?(“char”。等於(charornum))?{

int?臨時工?=?random.nextInt(2)?%?2?==?065?:?97;

int?ascii?=?random . nextint(26);

價值?+=?(char)?(ascii?+?temp);

}?不然呢?如果?(“num”。equalsIgnoreCase(charornum))?{

價值?+=?string . value of(random . nextint(10));

}

回歸?價值;

}

公共?靜電?作廢?printSet(Set?set){?//打印設置的方法

?叠代器?叠代器?=?set . iterator();

?什麽時候?(iterator.hasNext())?{

字符串?ele?=?(字符串)?iterator . next();

System.out.print(ele+"?");

}

}