Java 检查UUID字符串是否为Prime
我已经创建了一个创建128位UUID字符串的方法,现在我想检查这是否是一个素数。我不能把字符串转换成整数,因为它太大了。有人能建议我如何进行检查吗 这是我用来创建UUID的代码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
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并不想复制,但我想我的问题是不同的,谢谢你的答案