Java — 随机生成10条,长度不超过10,并且不重复的字符串(A-Z)(a-z)(0-9)
随机生成10条,长度不超过10,并且不重复的字符串(A-Z)(a-z)(0-9)
package Collection_MapDemo;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/**
* @author junxiang
* @create 2021/1/13
*/
public class randomString {
public static void main(String[] args) {
// 1. 创建一个String类型的ArrayList
List<String> stringList = new ArrayList<>();
// 2. 创建字符集
String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random = new Random();
/*
生成10条字符串
@param i : (外层循环)控制最终生成字符串的条数
@param len2 : 控制每条字符串的长度
@param j : (内层循环)根据字符串长度限定,控制获取字符的个数,拼接成字符串
*/
// 3. 生成10条字符串
for(int i=0; i<10; i++){
int len2;
// 每循环一次创建一个 StringBuilder
StringBuilder stringBuilder = new StringBuilder();
do{
// int len = random.nextInt(10); // [0,10)
len2 = (int)(1+Math.random()*10); // 随机生成[1,10]
for(int j=0; j<len2; j++){
// 根据字符集,随机生成一个索引,对应一个字符
int index = random.nextInt(str.length());
// 根据索引取值
char indexStr = str.charAt(index);
// 添加到 stringBuilder中
stringBuilder.append(indexStr);
}
// 去重,如果此条字符串在stringList中,则重新生成
}while (stringList.contains(stringBuilder));
System.out.println("-----" + (i+1) +"-----");
System.out.println("当前字符串长度为:" + len2);
// 把 StringBuilder 转为 String类型
String toString = stringBuilder.toString();
System.out.println(toString);
// 添加到 stringList 中
stringList.add(toString);
}
System.out.println("================输出10条字符串===================");
for(String s: stringList){
System.out.println(s);
}
}
}