吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2337|回复: 24
上一主题 下一主题
收起左侧

[Java 原创] java的UUID简单生成

[复制链接]
跳转到指定楼层
楼主
covenlonki 发表于 2023-7-27 10:41 回帖奖励
java的UUID简单生成
[Java] 纯文本查看 复制代码
package com.covenlonki.utils;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.IdUtil;

public class generateUuid {

    public static void main(String[] args) {
        System.out.println("得到8位的UUID-(码): " + getUUID_8());
        System.out.println("得到16位的UUID-(数字): " + getUUID_16());
        System.out.println("得到32位的UUID-(码): " + getUUID_32());
    }

    /*得到16位的UUID-(数字)*/
    public static String getUUID_16() {
        int machineId = 1;// 最大支持1-9个集群机器部署

        int hashCodeV = UUID.randomUUID().toString().hashCode();
        if (hashCodeV < 0) {// 有可能是负数
            hashCodeV = -hashCodeV;
        }
        String string = machineId + String.format("%015d", hashCodeV);
        return string;
    }

    /*得到32位的UUID-(码)*/
    public static String getUUID_32() {
        return UUID.randomUUID().toString().replace("-", "").toLowerCase();
    }

    public static final String[] CHARS = new String[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
            "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8",
            "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
            "U", "V", "W", "X", "Y", "Z" };

    /*得到8位的UUID-(码)*/
    public static String getUUID_8() {
        StringBuffer shortBuffer = new StringBuffer();
        String uuid = UUID.randomUUID().toString().replace("-", "");
        for (int i = 0; i < 8; i++) {
            String str = uuid.substring(i * 4, i * 4 + 4);
            int x = Integer.parseInt(str, 16);
            shortBuffer.append(CHARS[x % 0x3E]);
        }
        return shortBuffer.toString();
    }
}


运行结果:
得到8位的UUID-(码): 68yZXVVm
得到16位的UUID-(数字): 1000000966435108
得到32位的UUID-(码): 14690bc5598848a08a23a7335d9a0ab2

免费评分

参与人数 3吾爱币 +9 热心值 +3 收起 理由
Yvonne49 + 1 + 1 谢谢@Thanks!
Guangnianyinan + 1 + 1 热心回复!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
choefeng 发表于 2024-1-25 10:58
本帖最后由 choefeng 于 2024-1-25 10:59 编辑

这个还是复杂的,倒不如用java原生的生成方式,免得过度引用导致依赖冲突,工程项目上能少引用就少引用,再说重复造轮子没必要的
代码如下:
    //随机生成一个UUID对象
    UUID uuid = UUID.randomUUID();
    System.out.println("生成的UUID为:" + uuid.toString());
   
    //通过给定的字符串名称和命名空间生成UUID对象
    UUID uuid2 = UUID.nameUUIDFromBytes("example_name".getBytes());
    System.out.println("生成的UUID2为:" + uuid2.toString());
原理如下:
https://www.cnblogs.com/throwable/p/14343086.html
沙发
syubun 发表于 2023-7-27 16:20
3#
qeadzc 发表于 2023-7-27 23:35
4#
HJB1995 发表于 2023-7-28 09:08
学习一下
5#
pl03424290 发表于 2023-7-28 11:05
学习了,学习了
6#
huaxincanmeng 发表于 2023-7-28 13:30
支持一下
7#
huaxincanmeng 发表于 2023-8-1 09:30
有用支持
8#
 楼主| covenlonki 发表于 2023-8-9 09:19 |楼主
支持一下
9#
TinaZerotwo 发表于 2023-8-9 16:09
Java自带的UUID类可以直接生成UUID,不用第三方库
10#
onoffon 发表于 2023-8-10 13:37
没有带版本号,差评
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 11:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表