public?void?testSort3(){
List?<String>?stringList?=?new?ArrayList<String>();
Random?random?=?new?Random();
String?allPossible="QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm";
for(int?i=0;i<3;i++){??????
StringBuffer?s=new?StringBuffer();
????int?k=random.nextInt(10);????//隨機(jī)決定字符串的長(zhǎng)度
????for(int?j=0;j<k;j++){
????char?c=s.charAt(random.nextInt(allPossible.length()));
????s.append(c);?????????????//追加到s之后
????}
????String?str=s.toString();
????stringList.add(str);
}
System.out.println("-------------排序前-------------");
for(String?string:stringList){
System.out.println("元素:"+string);
}
Collections.sort(stringList);
System.out.println("-------------排序后-------------");
for(String?string:stringList){
System.out.println("元素:"+string);
}
}
2016-05-14
同學(xué)你第10行:s.charAt(random.nextInt(allPossible.length()))寫錯(cuò)了,s是字符緩沖區(qū)啊,你這句是在找什么~~應(yīng)該是allPossible.charAt(random.nextInt(allPossible.length()))
另外其中的?random.nextInt(allPossible.length())?最好改成random.nextInt(allPossible.length()-1),因?yàn)閏harAt尋找的下標(biāo)是從0~length()-1,雖然隨機(jī)函數(shù)取到最后的length()這個(gè)數(shù)的幾率不大,但是一旦隨機(jī)到最后的這個(gè)數(shù)了就會(huì)出bug,所以最后應(yīng)該改成allPossible.charAt(random.nextInt(allPossible.length()-1))~~已運(yùn)行,其他的地方應(yīng)該沒(méi)錯(cuò)了,如果有什么問(wèn)題歡迎指正~~~