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 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日