Java 检查UUID字符串是否为Prime

Java 检查UUID字符串是否为Prime,java,uuid,Java,Uuid,我已经创建了一个创建128位UUID字符串的方法,现在我想检查这是否是一个素数。我不能把字符串转换成整数,因为它太大了。有人能建议我如何进行检查吗 这是我用来创建UUID的代码 public static String uuid() { UUID uuid = UUID.randomUUID(); long hi = uuid.getMostSignificantBits(); long lo = uuid.getLeastSign

我已经创建了一个创建128位UUID字符串的方法,现在我想检查这是否是一个素数。我不能把字符串转换成整数,因为它太大了。有人能建议我如何进行检查吗

这是我用来创建UUID的代码

    public static String uuid()
    {
        UUID uuid = UUID.randomUUID();
        long hi = uuid.getMostSignificantBits();
        long lo = uuid.getLeastSignificantBits();
        byte[] bytes = ByteBuffer.allocate(16).putLong(hi).putLong(lo).array();
        BigInteger big = new BigInteger(bytes);
        String numericUuid = big.toString().replace('-','1'); // just in case
        //System.out.println(numericUuid);
        return(numericUuid);
    }

您可以使用BigInteger的isProbablePrime:


如果您传递一个高确定性参数(例如100),那么如果该参数返回true,那么它实际成为素数的概率非常接近1。

您可以执行long num=big.longValue();如果你想做一些计算,这是一个奇怪的问题。测试一个
BigInteger
的素数,但是为什么您会关心UUID是否是素数呢?我很想知道。我改为long,但似乎不再是128位了,你能建议如何解决这个问题吗@durron597并不想复制,但我想我的问题是不同的,谢谢你的答案