1.要求
- a.创建完List<String>后,往其中添加十条随机字符串
- b.每条字符串的长度为10以内的随机整数
- c.每条字符串的每个字符都为随机生成的字符,字符可以重复
- d.每条随机字符串不可重复
2.难点
- a.如何生成不重复的随机字符串
- b. 如何保证每条字符串的长度为10以内的随机整数
3.代码
/**
* 获取随机字符串
*
* @param length 字符长度
* @return
*/
private static String getRandomString(int length) {
// 定义组成随机字符串的所有字符集
String character = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random = new Random();
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < length; i++) {
// 生成字符随机数
int number = random.nextInt(character.length());
//将字符集的第number个字符加到stringBuilder末尾
stringBuilder.append(character.charAt(number));
}
return stringBuilder.toString();
}
/**
* 获取随机长度字符串
*
* @return
*/
private static List<String> getRandomLengthString() {
// 定义一个String泛型的List来存放10个长度为10以内的随机不重复字符串
List<String> stringList = new ArrayList<>();
Random random = new Random();
int k;
String str;
for (int i = 0; i < 10; i++) {
// 生成10以内的随机整数
k = random.nextInt(10);
do {
str = getRandomString(k);
// 如果stringList包含该字符串,则重新生成新的字符串
} while (stringList.contains(str));
stringList.add(str);
}
return stringList;
}
public static void main(String[] args) {
System.out.println("-----------排序前--------------");
for (String s : getRandomLengthString()) {
System.out.println(s);
}
System.out.println("-----------排序后--------------");
List<String> stringTestList = getRandomLengthString();
// 排序
Collections.sort(stringTestList);
for (String s : stringTestList) {
System.out.println(s);
}
}
网友评论