题目要求:生成10个字符串,字符串长度随机,字符串里面的每一个字符由大小写字母,数字组成,每一个字母也随机生成。不能存在相同的字符串。生成字符串以后,对字符串排序。
import java.util.Collections;
import java.util.LinkedList;
import java.util.Random;
public class RandomListDemo {
private static LinkedList<String> strList = new LinkedList<String>();
private static Random random = new Random();
public static void main(String[] args){
System.out.println("产生的十个随机字符串为:");
putRandomStrToList(strList);
for(int i = 0; i<strList.size(); i++){
System.out.println(strList.get(i));
}
System.out.println("----------------排序以后的字符串为----------:");
Collections.sort(strList);
for(int i = 0; i<strList.size(); i++){
System.out.println(strList.get(i));
}
}
public static void putRandomStrToList(LinkedList<String> list){
for(int i = 0; i < 10; i++){
String insertStr = createRandomString();
while(true){
if(!(list.contains(insertStr))){
list.add(insertStr);
break;
}else{
insertStr = createRandomString();
}
}
}
}
public static String createRandomString(){
StringBuilder randomStr = new StringBuilder("");
int len = random.nextInt(10);
for(int i = 0; i < len; i++){
int choice = random.nextInt(3);
switch(choice){
case 0:
randomStr.append(createDigite());
break;
case 1:
randomStr.append(createUpperLetter());
break;
case 2:
randomStr.append(createLowerLetter());
}
}
return randomStr.toString();
}
public static int createDigite(){
return random.nextInt(10);
}
public static String createUpperLetter(){
char c = 'A';
c = (char) (c+random.nextInt(26));
return String.valueOf(c); }
public static String createLowerLetter(){
char c = 'a';
c = (char) (c+random.nextInt(26));
return String.valueOf(c);
}
}
输出结果为:
产生的十个随机字符串为:
s1S7O2
2m2
4C20NA4
6it
1Hast
E1Dtz
4lk
x
6HU0
ZydBMVq
----------------排序以后的字符串为----------:
1Hast
2m2
4C20NA4
4lk
6HU0
6it
E1Dtz
ZydBMVq
s1S7O2
x
因为每次运行都是随机生成的,运行结果每次都不同。