代码和注释都有大家根据自己需求自取即可;
package com.example.democrud.democurd.uuid; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Random; import java.util.UUID; public class uuid { public static void main(String[] args) { System.out.println("----------------------random随机数--------------------"); //random随机数 Random random = new Random(); //取(10000-99999)的数,random出来0-89999的数,再加10000就达到效果。 //3个8 代表获取的随机的值 是3位数的 int id=random.nextInt(8888)+1000; System.out.println("random随机数==>"+id); UUID uuid = UUID.randomUUID(); System.out.println("原生uuid==>"+uuid); System.out.println("----------------------UUID随机数 常用--------------------"); String str = uuid.toString(); String uuidStr = str.replace("-", ""); System.out.println(uuidStr); System.out.println("----------------------UUID随机数 根据一个符合UUID格式的字符串获取--------------------"); UUID uuid1 = UUID.fromString("095c64fe-c5bf-11ea-aec6-a402b9e2b04d"); System.out.println(uuid1); System.out.println("----------------------UUID随机数 根据字符串获取--------------------"); UUID uuid2 = UUID.nameUUIDFromBytes("身份证号码".getBytes()); System.out.println(uuid2); UUID uuid21 = UUID.nameUUIDFromBytes("身份证号码".getBytes()); System.out.println(uuid21); System.out.println("通过demo得出相同字符得除的加密是相同的"); UUID uuid3 = UUID.nameUUIDFromBytes("身份证号码11".getBytes()); System.out.println(uuid3); System.out.println("----------------------生成随机ID--------------------"); //生成6位随机数字 System.out.println((int)((Math.random()*9+1)*100000)); //生成5位随机数字 System.out.println((int)((Math.random()*9+1)*10000)); //生成4位随机数字 System.out.println((int)((Math.random()*9+1)*1000)); //生成3位随机数字 System.out.println((int)((Math.random()*9+1)*100)); //生成2位随机数字 System.out.println((int)((Math.random()*9+1)*10)); //生成1位随机数字 System.out.println((int)((Math.random()*9+1))); System.out.println("----------------------生成时间UUID随机数--------------------"); Date date=new Date(); DateFormat format = new SimpleDateFormat("yyyyMMdd"); String time = format.format(date); int hashCodeV = UUID.randomUUID().toString().hashCode(); if (hashCodeV < 0) {//有可能是负数 hashCodeV = -hashCodeV; } // 0 代表前面补充0 // 11 代表长度为11 时间后面值的长度,他的长度的增加与减少是靠增加0 与去掉0来处理的 // d 代表参数为正数型 System.out.println("当前时间年月日"+time); System.out.println(time + String.format("%011d", hashCodeV)); // 13 代表长度为13 不足的需要增加0补充 System.out.println(time + String.format("%013d", hashCodeV)); } }
运行结果如下:
----------------------random随机数-------------------- random随机数==>1289 原生uuid==>97bc24f0-d12e-4184-b970-46a34dd53f06 ----------------------UUID随机数 常用-------------------- 97bc24f0d12e4184b97046a34dd53f06 ----------------------UUID随机数 根据一个符合UUID格式的字符串获取-------------------- 095c64fe-c5bf-11ea-aec6-a402b9e2b04d ----------------------UUID随机数 根据字符串获取-------------------- 84e0cb5d-57ed-395b-8cc0-4b4ab9a7997b 84e0cb5d-57ed-395b-8cc0-4b4ab9a7997b 通过demo得出相同字符得除的加密是相同的 4b5b1bc6-86d1-390e-af96-0acd922f308f ----------------------生成随机ID-------------------- 112926 52122 9081 109 43 1 ----------------------生成时间UUID随机数-------------------- 当前时间年月日20230202 2023020200914093716 202302020000914093716
不足之处多多谅解;有其他更好的方式,欢迎留言;