需求
最近在做数据模型相关 需要手动将图形化操作转换成 数据库关联查询join 语句
这里就有一个表别名的问题 所以需要随机的字母组合
代码
// 这里是种子字母 当然如果需要可以加上数字 已经把大小写区分不明显的去掉了
public static Character[] words = new Character[]{'a', 'b', 'd', 'e', 'f', 'g', 'h', 'm', 'n', 'q', 'r', 't', 'y',
'A', 'B', 'D', 'E', 'F', 'G', 'H', 'L', 'M', 'N', 'R', 'T', 'Y'};
/**
* 获取随机字母组合
* begin 最小长度
* offset 最小长度之后随机增加长度区间
* @return
*/
public static String getRandomWords(Integer begin, Integer offset) {
//创建random 需要一个种子 同样的种子会出现固定顺序的random
// 突发奇想用了时间戳
Random random = new Random(System.currentTimeMillis());
// 计算最终返回长度 这个方法是包左不包右的所以+1
int i = random.nextInt(offset + 1) + begin;
// 返回结果预存集合
List<Character> results = new ArrayList<>();
while(results.size() < i) {
// 数组中取出一个随机索引 以及元素
int index=(int)(Math.random()*words.length);
results.add(words[index]);
}
// list 转character数组
Character[] array = results.toArray(new Character[]{});
// character 数组转char
char[] chars = ArrayUtils.toPrimitive(array);
// 返回结果
return new String(chars);
}