入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

java中用UUID生成唯一标识ID

创建时间:2016-09-07 投稿人: 浏览次数:3214

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

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像