我有以下代码(由AI编写),可以生成uuid的模板(这只是模板,8位数字的前缀和12位的后缀将根据不同的逻辑计算附加):
import java.util.concurrent.atomic.AtomicInteger;
public class CustomUUIDGeneratorTemplate {
private static final AtomicInteger COUNTER = new AtomicInteger(-1);
public static String generateUUIDTemplate() {
int count1 = COUNTER.incrementAndGet();
String uuid = String.format("%04x-7%03x-%04x",
count1 & 0xFFFFFFFFL,
count1 & 0xFFFFFFFFL,
count1 & 0xFFFFFFFFL
);
return uuid;
}
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
System.out.println(generateUUIDTemplate());
}
}
}
它产生以下输出:
0000-7000-0000
0001-7001-0001
0002-7002-0002
但我正在尝试实现不同的输出:
0000-7000-0001
0000-7000-0002
0000-7000-0003
当最后一个数字接近末尾时,左侧的数字应该递增,如下所示:
0000-7fff-ffff
0001-7000-ffff
如何实现这一目标?任何帮助将不胜感激。
我会使用 java.util.UUID 并砍掉开头和结尾,因为您正在寻找的是 UUID 的有效子集。
public static String dumbUUID() {
return UUID.randomUUID().toString().substring(4, 18);
}