今天也要加油鸭丶
2016-05-14 11:59
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); //随机决定字符串的长度
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);
}
}
同学你第10行:s.charAt(random.nextInt(allPossible.length()))写错了,s是字符缓冲区啊,你这句是在找什么~~应该是allPossible.charAt(random.nextInt(allPossible.length()))
另外其中的 random.nextInt(allPossible.length()) 最好改成random.nextInt(allPossible.length()-1),因为charAt寻找的下标是从0~length()-1,虽然随机函数取到最后的length()这个数的几率不大,但是一旦随机到最后的这个数了就会出bug,所以最后应该改成allPossible.charAt(random.nextInt(allPossible.length()-1))~~已运行,其他的地方应该没错了,如果有什么问题欢迎指正~~~
Java入门第三季
409775 学习 · 4546 问题
相似问题