我正在寻找在Java中创建唯一ID作为字符串的最佳方法。

任何指导都很感激,谢谢。

我应该提到我使用的是Java 5。


当前回答

java.util.UUID: toString()

其他回答

这为UUID生成增加了更多的随机性,但确保每个生成的id都具有相同的长度

import org.apache.commons.codec.digest.DigestUtils;
import java.util.UUID;

public String createSalt() {
    String ts = String.valueOf(System.currentTimeMillis());
    String rand = UUID.randomUUID().toString();
    return DigestUtils.sha1Hex(ts + rand);
}

java.util.UUID: toString()

我们可以使用UUID在java中创建一个唯一的ID,并调用UUID上的randomUUID()方法。

String uniqueID = UUID.randomUUID().toString();

这将生成一个随机的uniqueID,其返回类型为String。

创建UUID。

String uniqueID = UUID.randomUUID().toString();

具有计数信息的唯一ID

import java.util.concurrent.atomic.AtomicLong;

public class RandomIdUtils {

    private static AtomicLong atomicCounter = new AtomicLong();

    public static String createId() {

        String currentCounter = String.valueOf(atomicCounter.getAndIncrement());
        String uniqueId = UUID.randomUUID().toString();

        return uniqueId + "-" + currentCounter;
    }
}