Java 中的自定义十六进制 UUID 模板生成器

问题描述 投票:0回答:1

我有以下代码(由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 hex uuid
1个回答
0
投票

我会使用 java.util.UUID 并砍掉开头和结尾,因为您正在寻找的是 UUID 的有效子集。

public static String dumbUUID() {
    return UUID.randomUUID().toString().substring(4, 18);
}
© www.soinside.com 2019 - 2024. All rights reserved.