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));

	}
	
}
最近下载更多
zhjwgs  LV15 2019年3月5日
zhangxiaoye  LV1 2018年2月26日
笨小孩一号  LV22 2017年8月3日
rastaclat  LV9 2017年7月28日
zxcv1111  LV6 2017年6月1日
x7430657  LV1 2017年1月22日
小强111111  LV20 2016年11月26日
xinjames  LV27 2016年10月19日
车站男生  LV1 2016年10月18日
最代码折颜  LV13 2016年10月13日
最近浏览更多
qq1357574774  LV2 2023年7月20日
易拉罐  LV8 2023年5月24日
wuziayng1232  LV10 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日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友