问答详情
源自:6-5 应用 Collections.sort() 实现 List 排序

随机生成不重复字符串(通过ASCII编码实现)

package imooc.Collections.sort;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class SortDemo {
/**
* 添加十条随机字符串给List 
* 每条字符串的长度为10以内的随机整数 
* 每条字符串的每个字符都为随机生成的字符,字符可以重复 
* 每条随机字符串不可重复
* 
* @param args
*/
public void stringList() {
List<String> stringList = new ArrayList<String>();
Random random = new Random();
StringBuilder str = new StringBuilder();
String string = new String();
// 循环添加10条随机字符串
for (int i = 0; i < 10; i++) {
//每条随机字符串不重复
do {
// 清空str
str.delete(0, str.length());
//每条字符串的字符长度为10以内的随机整数
for (int j = 0; j < random.nextInt(9) + 1; j++) {
//根据ASCII编码生成随机的字符
int n = random.nextInt(3) + 1;
switch (n) {
case 1:
// 生成随机数
int num = random.nextInt(10);
str.append(num);
break;
case 2:
// 生成大写字母
char cap = (char) (random.nextInt(26) + 65);
str.append(cap);
break;
case 3:
// 生成小写字母
char low = (char) (random.nextInt(26) + 97);
str.append(low);
break;
}

string = str.toString();
}
} while (stringList.contains(string));
stringList.add(string);

System.out.println("List中添加了字符串:" + string);
}
System.out.println("-------排序前--------");
for (String i : stringList) {
System.out.println("元素:" + i);
}
Collections.sort(stringList);
System.out.println("-------排序后--------");
for (String i : stringList) {
System.out.println("元素:" + i);
}

}

public static void main(String[] args) {
SortDemo sd = new SortDemo();
sd.stringList();
}

}


提问者:码农_鑫森淼焱垚 2015-09-07 09:18

个回答

  • 叶乐乐
    2015-12-28 17:54:06

    棒棒哒!!!!

  • 飞扬拽拽
    2015-12-25 17:29:23

    perfect.