public class CollectionsTestTwo { /** * 通过collections.sort()方法对String泛型进行排序 * 1、要创建一个String泛型,并且随机添加十个字符串 * @param args */ public void testSort1() { String str = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; Random random = new Random(); List<String> stringList = new ArrayList<String>(); for(int i =0;i<10;i++) { //使用StringBuffer创建一个新的字符串对象 StringBuffer sb = new StringBuffer(); int stringLength = random.nextInt(10); if(stringLength == 0) { continue; }else { for(int j =0;j<stringLength;j++) { int num = random.nextInt(str.length());//随机产生一个str的索引位置 sb.append(str.charAt(num));//将str在num位置上的值添加到sb字符串对象中 } } stringList.add(sb.toString()); System.out.println("将要添加字符串:" + sb.toString()); } 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); } public static void main(String[] args) { // TODO Auto-generated method stub CollectionsTestTwo ctt = new CollectionsTestTwo(); ctt.testSort1(); } }
看了看下,虽然可以输出十个随机字符串并排序,但是
没有完成第四个规定,那就是并没有规定是十个不一样的随机字符串。
可以在添加字符串前判断是否存在,如不存在就跳出重新循环。
具体可以参考下:
loop:
for(int i=0;i<10;) {
//使用StringBuffer创建一个新的字符串对象
StringBuffer sb = new StringBuffer();
int stringLength = random.nextInt(10);
if(stringLength == 0) {
continue;
}else {
for(int j =0;j<stringLength;j++) {
int num = random.nextInt(str.length());//随机产生一个str的索引位置
sb.append(str.charAt(num));//将str在num位置上的值添加到sb字符串对象中
}
}
//判断将要添加的字符串是否已经存在
if (stringList.contains(sb.toString())) {
continue loop;
}
stringList.add(sb.toString());
i++;
System.out.println("将要添加字符串:" + sb.toString());
}