java中用UUID生成唯一标识ID

本文介绍UUID(全局唯一标识符)的概念及其生成方法,并提供去除特殊字符的UUID生成代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得)

如果使用的JDK1.5的话,那么生成UUID变成了一件简单的事,以为JDK实现了UUID:
java.util.UUID,直接调用即可.
UUID uuid = UUID.randomUUID();
String s = UUID.randomUUID().toString();

UUID的唯一缺陷在于生成的结果串会比较长。其格式为:xxxxxxxx-xxxx- xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-4-16)
(Example: C2FEEEAC-CFCD-11D1-8B05-00600806D9B6

由于需求我们也许要用到没有“-”的UUID

    /** 
     * 获得一个去掉“-”符号的UUID 
     * @return String UUID 
     */ 
    public static String getUUID(){ 
        String s = UUID.randomUUID().toString(); 
        //去掉“-”符号 
        return s.substring(0,8)+s.substring(9,13)+s.substring(14,18)+s.substring(19,23)+s.substring(24); 
    } 

有时我们对UUID的长度有要求

//获得指定数量的UUID  
public static String[] getUUID(int number) {  
    if (number < 1) {  
        return null;  
    }  
    String[] ss = new String[number];  
    for (int i = 0; i < number; i++) {  
        ss[i] = getUUID();  
    }  
    return ss;  
}

也可用

String.subSequence(int beginlndex ,int endlndex)

需要注意的是:
如果 beginIndex 或 endIndex 为负,如果 endIndex 大于 length() 或 beginIndex 大于 startIndex ,会抛异常 IndexOutOfBoundsException

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一行注释也不写

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值