public void stringSort(){
List<String> stringList=new ArrayList<String>();
Random random=new Random();
int length,ch;//length保存每个元素的长度,ch保存合法的ascii码值
//一层循环十次完成十个元素的生成和添加
for(int i=0;i<10;i++){
char s[]; //定义相应长度的字符型数组
do {
length = random.nextInt(10); //随机生成元素的长度
s = new char[length];
//二层循环为字符数组的每个元素赋随机char值
for (int j = 0; j < length; j++) {
//获取随机ascii值,并判断生成的ascii码值是否为指定的0-9、a-z、A-Z
do {
ch = random.nextInt(127);
} while (!((47 < ch && ch < 58) (64 < ch && ch < 91) (96 < ch && ch < 123)));
s[j] = (char) ch;//将合法的ascii值转化为char值并赋值给数组
}
} while (stringList.contains(String.valueOf(s)));//判断list中是否已有该元素
stringList.add(String.valueOf(s));//调用add函数将char数组保存的元素添加到list中
}
//通过foreach打印输出排序前的list
System.out.println("-----排序前-----");
for(String s:stringList){
System.out.println("元素:"+s);
}
//用collection.sort对list进行排序
Collections.sort(stringList);
//通过foreach打印输出排序后的list
System.out.println("-----排序后-----");
for(String s:stringList){
System.out.println("元素:"+s);
}
}
打开App,阅读手记
热门评论
代码很不错,用ascll码这招比用“asdfghjkl”这种简便很多,不过个人建议还是少用多层嵌套,这样代码的可读性会大大的降低的