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日
            
            
        
 
                 
                 
                