在JAVA中生成UUID字符串的有效方法(不带破折号的UUID.randomUUID()。toString())
导读:如何解决在JAVA中生成UUID字符串的有效方法(不带破折号的UUID.randomUUID()。toString())?最终基于UUID.java实现编写了自己的东西。请注意,我 ,而是以我能想到的最有效的方式 随机的32字节十六进制字符串。实作import java.security.Secu...
最终基于UUID.java实现编写了自己的东西。请注意,我 ,而是以我能想到的最有效的方式 随机的32字节十六进制字符串。
实作import java.security.SecureRandom;import java.util.UUID;public class RandomUtil { // Maxim: copied from UUID implementation :) private static volatile SecureRandom numberGenerator = null; private static final long MSB = 0x8000000000000000L; public static String unique() {SecureRandom ng = numberGenerator;if (ng == null) { numberGenerator = ng = new SecureRandom();}return Long.toHexString(MSB | ng.nextLong()) + Long.toHexString(MSB | ng.nextLong()); } }用法
RandomUtil.unique()测验
我已经测试过一些输入,以确保其正常工作:
public static void main(String[] args) { System.out.println(UUID.randomUUID().toString()); System.out.println(RandomUtil.unique()); System.out.println(); System.out.println(Long.toHexString(0x8000000000000000L |21)); System.out.println(Long.toBinaryString(0x8000000000000000L |21)); System.out.println(Long.toHexString(Long.MAX_VALUE + 1));}解决方法
我想要一个高效的实用程序来生成唯一的字节序列。UUID是一个很好的候选人,但是会UUID.randomUUID().toString()生成类似的东西44e128a5-ac7a-4c9a-be4c-224b6bf81b20,但是我更喜欢无破折号的字符串。
我正在寻找一种仅从字母数字字符(无破折号或任何其他特殊符号)生成随机字符串的有效方法。
相关文章:
1. vagrant - 使用NFS文件夹作为mysql datadir无法启动mysql的问题?2. Java泛型问题:类“不在类型变量的范围内”错误。3. 性能基准:PHP生成的内容VS。JavaScript和DOM over AJAX4. java-如何使列表彼此相邻(水平)而不是向下(垂直)。5. ios - 为什么用WKWebView加载相同的html文本,有时展示的内容却不一样。6. css和HTML样式 投票管理系统7. css3 - selectivezr.js 结合mootools.js 不支持:first-child?8. javascript - kindeditor上传本地图片9. java - Android studio 新项目运行结果都是Process finished with exit code 010. AngularJs。是否可以通过单击取消选择HTML“广播”输入?