隨機(jī)生成字符串,出現(xiàn)了空字符串是什么原因?
我先定義了一個字符串用來存放0-9,A-Z,a-z字符,程序和問答中各位朋友所述的一樣,運行是沒有問題的,但是有時會出現(xiàn)生成了空字符串的現(xiàn)象,請問是為什么?
如下:
成功添加字符串:dHh
成功添加字符串:54
成功添加字符串:llPn79BN
成功添加字符串:
成功添加字符串:xUMCX
成功添加字符串:h
成功添加字符串:E
成功添加字符串:D3jPaDdH
成功添加字符串:gwSrek
成功添加字符串:
----------排序前-----------
字符串為:dHh
字符串為:54
字符串為:llPn79BN
字符串為:
字符串為:xUMCX
字符串為:h
字符串為:E
字符串為:D3jPaDdH
字符串為:gwSrek
字符串為:
----------排序后-----------
字符串為:
字符串為:
字符串為:54
字符串為:D3jPaDdH
字符串為:E
字符串為:dHh
字符串為:gwSrek
字符串為:h
字符串為:llPn79BN
字符串為:xUMCX
?
2015-12-06
k=random.nextInt(10); //這里0~10以內(nèi)的隨機(jī)數(shù)?
//當(dāng)K的值為0時 添加到sb中的字符為空 轉(zhuǎn)為字符串以后自然也就是空字符串? 添加到集合中輸出的就是空字符串
//可以改成
k=random.nextInt(9) + 1; // 0~9以內(nèi)的隨機(jī)數(shù)+1 相當(dāng)于1~10以內(nèi)的隨機(jī)數(shù) 避免了k值為0的問題
2015-12-10
k=random.nextInt(10);這個地方的k值為零時,就出現(xiàn)空字符, 你可以改成k =1+random.nextInt(9);
2015-11-30
k=random.nextInt(10);這個地方的k值為零時,就出現(xiàn)空字符,你可以改成while((k=random.nextInt(10))==0);
2015-11-30
貼出來代碼瞅瞅,是不是截圖的開始位置和結(jié)束位置一樣了,導(dǎo)致截圖了0長度的字符串。
2015-11-30
這是我的方法:
public void testSort3(){
List<String> stringList =new ArrayList<String>();
Random random=new Random();
String base="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
Integer k;
for(int i=0;i<10;i++){
StringBuilder sb=new StringBuilder();
do{
k=random.nextInt(10);
for(int j=0;j<k;j++){
int number=random.nextInt(base.length());
? ?sb.append(base.charAt(number));
}
sb.toString();
}while(stringList.contains(sb));
System.out.println("成功添加字符串:"+sb);
stringList.add(sb.toString());
}
System.out.println("----------排序前-----------");
for (String string1 : stringList) {
System.out.println("字符串為:"+string1);
}
Collections.sort(stringList);
System.out.println("----------排序后-----------");
for (String string : stringList) {
System.out.println("字符串為:"+string);
}
}