首页 / JAVA / java – 什么是有效的UUID?
java – 什么是有效的UUID?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 什么是有效的UUID?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1754字,纯文字阅读大概需要3分钟。
内容图文
![java – 什么是有效的UUID?](/upload/InfoBanner/zyjiaocheng/754/a5dea3d5850545c4b7b852ed320dbe4d.jpg)
我生成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 – 什么是有效的UUID?全部内容,希望文章能够帮你解决java – 什么是有效的UUID?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。