生成10以内的数字
// prefix为自定义前缀,想要几位数可以自行修改0的数量
// id获取方式为从数据库表中查询现在最大id+1(SELECT id+1 from table ORDER BY id DESC LIMIT 1)
public String getbh(){
Random rd=new Random();
rd.ints();//返回无限个int类型范围内的数据
int[] arr=rd.ints(1).toArray(); //生成多少个int范围内的随机数
String a="";
for(int i=0;i<arr.length;i++) {
a+=arr[i];
}
String bh="";
String[] strs=a.split("-");
for(int i=0,len=strs.length;i<len;i++){
bh+=strs[i];
}
return bh;
}
生成16位不重复的随机数,含数字+大小写
/**
* 生成16位不重复的随机数,含数字+大小写
* @return
*/
public static String getGUID() {
StringBuilder uid = new StringBuilder();
//产生16位的强随机数
Random rd = new SecureRandom();
for (int i = 0; i < 16; i++) {
//产生0-2的3位随机数
int type = rd.nextInt(3);
switch (type){
case 0:
//0-9的随机数
uid.append(rd.nextInt(10));
/*int random = ThreadLocalRandom.current().ints(0, 10)
.distinct().limit(1).findFirst().getAsInt();*/
break;
case 1:
//ASCII在65-90之间为大写,获取大写随机
uid.append((char)(rd.nextInt(25)+65));
break;
case 2:
//ASCII在97-122之间为小写,获取小写随机
uid.append((char)(rd.nextInt(25)+97));
break;
default:
break;
}
}
return uid.toString();
}