这个小练习难度在于生成符合要求的随机字符串。
package learn.java1;
import java.util.*;
public class SortListString {
//1. 创建一个字符串列表
private static List<String> myList=new ArrayList<String>();
public static void main(String[] args){
SortListString sls=new SortListString();
String randomString;
//2. 往列表里添加10个不重复的随机字符串,调用getRandomString()方法获得随机字符串
for(int i=0;i<10;i++){
do{
randomString=sls.getRandomString();
}while(myList.contains(randomString));
myList.add(randomString);
System.out.println("添加了新字符串"+ randomString);
}
//3. 打印排序前的字符串列表
System.out.println("----------排序前--------------");
for(String each:myList){
System.out.println(each);
}
//4. 对字符串列表进行排序,打印排序后的字符串列表
Collections.sort(myList);
System.out.println("------------排序后--------------------");
for(String each:myList){
System.out.println(each);
}
}
//获得随机10以内随机长度字符串的方法
public String getRandomString(){
//创建一个包含需要字符的字符串,为什么没有一个生成随机字符的方法呢?
String bases="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random=new Random();
//这里很有意思,写成nextInt(10)的时候,每次都会生成0,不知道它们怎么算的,下面这样就不会 生成0了
int length=random.nextInt(9)+1;
//StringBuffer类似于一个可变字符串,有很多方法可用
StringBuffer randomString=new StringBuffer();
for(int i=0;i<length;i++){
randomString.append(bases.charAt(random.nextInt(62)));
}
return randomString.toString();
}
}
这里面random的用法非常有意思,有时间会去研究一下。。。