package com.test;
/**
* 随机数
*/
import java.util.Date;
import java.util.Random;
import java.util.UUID;
public class NumTest {
public static String getCode(int passLength, int type) {
StringBuffer buffer = null;
StringBuffer sb = new StringBuffer();
Random r = new Random();
r.setSeed(new Date().getTime());//使用单个 long 种子设置此随机数生成器的种子
switch (type) {//这里有4中不同的情况
case 0:
buffer = new StringBuffer("0123456789");
break;
case 1:
buffer = new StringBuffer("abcdefghijklmnopqrstuvwxyz");
break;
case 2:
buffer = new StringBuffer("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
break;
case 3:
buffer = new StringBuffer("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ");
break;
case 4:
String s = UUID.randomUUID().toString();//生成一个32位数字(不包括"-")的唯一标识数
//使用substring分割其中的"-";
sb.append(s.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24));
}
if (type != 4) { //当数字不等于4时,随机数的长度passLength,nextInt(n)表示: 0<=nextInt(n)<n
int range = buffer.length();
for (int i = 0; i < passLength; ++i) {
sb.append(buffer.charAt(r.nextInt(range)));//使用charAt()方法返回某一个随机出来的字符,然后添加到sb字符串变量里去
}
}
return sb.toString();
}
public static void main(String[] args) {
//第一个数字代表你需要多少位随机数字,第二位‘0、1、2、3’分别代表生成全数字的、生成的全小写字母的随机数、生成的全大写字母的随机数、生成的字母与数字混合的随机数
System.out.println("生成一个8位的全数字的随机数是:" + getCode(8, 0));
System.out.println("生成一个10位的全小写字母的随机数是:" + getCode(10, 1));
System.out.println("生成一个12位的全大写字母的随机数是:" + getCode(12, 2));
System.out.println("生成一个14位的字母与数字混合的随机数是:" + getCode(14, 3));
//有唯一标识,可用于生成数据库表的主键(只能生成32位)
System.out.println("生成的一个32位的有唯一标识的随机数是:" + getCode(0,4));
}
}
最近下载更多
最近浏览更多
qq1357574774 LV2
2023年7月20日
易拉罐 LV8
2023年5月24日
wuziayng1232 LV11
2023年2月21日
crosa_Don LV18
2022年4月1日
ACEqqqas
2020年12月31日
暂无贡献等级
bek123 LV2
2020年12月3日
xcj456 LV8
2020年9月12日
lw20020421 LV10
2020年8月15日
Eureka LV3
2020年6月18日
hhhhhhhhhhhh微 LV1
2020年6月8日

