java的uuid有什么用_java – 什么是有效的UUID?

我生成UUID,并在我的代码中对正则表达式进行有效;我刚遇到困扰我的问题

以下是生成UUID的代码(在mongodb上下文中)

import java.util.UUID;

... ...

Document setOnInsert = new Document(Params.sender, UUID.randomUUID())

.append(Params.userDevice, userDevice)

.append(Params.hostId,"");

这是验证UUID的代码;我从这个post复制了正则表达式

static final Pattern UUID = Pattern.compile("([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})");

public static boolean isUUID(String uuid){

if(uuid == null){

return false;

}else{

return UUID.matcher(uuid).matches();

}

}

以下是我遇到问题的2个UUID

aa4aaa2c-c6ca-d5f5-b8b2-0b5c78ee2cb7

b24dd64c-de6b-5bf6-6283-aa2167cc93a7

这两个UUID是由上述代码生成的;验证方法(isUUID())在我的最新调试中判断它们无效;但是我把这些UUID发布到了在线validator,它说好了

这是我的系统信息

wjz@bj:~$java -version

java version "1.8.0_121"

Java(TM) SE Runtime Environment (build 1.8.0_121-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

wjz@bj:~$

wjz@bj:~$lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 16.04.1 LTS

Release: 16.04

Codename: xenial

wjz@bj:~$

一些背景:我一直在研究jdk 1.8.0_111;这些UUID已经生成,没有问题.然后我今天升级到1.8.0_121,遇到这个问题……

所以我的问题是:上面提到的UUID是正确还是错误?谁相信,发电机或验证

解决方法:

我的建议是,不要重新发明轮子.

基本上,如果使用UUID.randomUUID()生成ID,则无需验证它们.

如果你好奇他们可能会被手动操作.

您可以使用UUID.fromString(yourUUID)并捕获可能抛出的IllegalArgumentExcepetion和NumberFormatException.

引发IllegalArgumentExcepetion:

If name does not conform to the string representation as described in toString()

此外,如果UUID已正确转换,您可以在后面检查

UUID id = UUID.fromString(yourUUID);

if(id.toString().equals(yourUUID){

//success

}

标签:java,regex,uuid,java-8

来源: https://codeday.me/bug/20190722/1501835.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值