package?xuanke;
import?java.util.ArrayList;
import?java.util.List;
import?java.util.Random;
public?class?RandString?{?
??List<String>?randStr?=?new?ArrayList<>();
??
?public?void?getRandStr(){
??String?n?=?"abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";??
??Random?random?=?new?Random();????
??for(int?i?=0;i<10;i++){?
???int?j?=0;
???StringBuffer?sb?=?new?StringBuffer();???
??for(int?k?=?random.nextInt(10);j<k;){
????//?就是這里↓?明明處理了隨機到0的情況,但是還是會出現(xiàn)空字符串
????if(k==0){
?????continue;
????}else{
?????int?a?=?random.nextInt(n.length()-1);???
?????sb.append(n.charAt(a));?
?????j++;
????}
?????
????
???}
??randStr.add(sb.toString());???
??}??
?}
?
?public?void?forEcheGetRandStr(){
??for?(String?string?:?randStr)?{
???System.out.println(string);
??}
?}
??
?public?static?void?main(String[]?args)?{
??//?TODO?自動生成的方法存根
??RandString?rs?=?new?RandString();
??rs.getRandStr();
??rs.forEcheGetRandStr();
?}
}
2017-05-08
因為在你的循環(huán)中。你判斷了K==0的情況,但是你用的是continue,僅僅只是跳過了生成字符串這一個for循環(huán),但是你要考慮到因為k=0,這次生成字符串是空的,你必須要跳到最外層:i這一層。必須讓i--,重新生成字符串。
2017-05-07