有没有办法生成一个随机的UUID,它只由数字组成?

2022-09-01 13:00:10

Java 的 UUID 类生成一个随机的 UUID。但这由字母和数字组成。对于某些应用程序,我们只需要数字。有没有办法在Java中生成仅由数字组成的随机UUID?

UUID.randomUUID();

答案 1

如果您不想要随机数,但带有数字的 UUID 仅使用:

String lUUID = String.format("%040d", new BigInteger(UUID.randomUUID().toString().replace("-", ""), 16));

在这种情况下,左填充到40个零...

搜索结果:
UUID : b55081fa-9cd1-48c2-95d4-efe2db322a54
在:
UUID : 0241008287272164729465721528295504357972


答案 2

记录在案:UUID实际上是128位数字。

您看到的字母数字字符串是使用十六进制数字 (0..9A.F).

真正的解决方案是将字符串转换为其对应的 128 位数字。要存储它,你需要两个 Long(Long 有 64 位)。