繁体   English   中英

创建16位随机数(JAVA)

[英]Create Random Number with 16 Digits (JAVA)

我想在Java中随机创建16位数字。 我可以使用String进行处理,然后将其转换为Long。 还有其他选择吗?

谢谢!

您可以使用Java类Random来生成随机Longs,如下所示,以获取不超过一百万的数字:

final long MAX_NUMBER_YOU_WANT_TO_HAVE = 9999999999999999L;
final long MIN_NUMBER_YOU_WANT_TO_HAVE = 1000000000000000L;
Long actual = Long.valueOf(Math.abs(Float.valueOf(new Random().nextFloat() * (MAX_NUMBER_YOU_WANT_TO_HAVE - MIN_NUMBER_YOU_WANT_TO_HAVE)).longValue()));

如果您绝对需要16位数字(不是0到10 ^ 17-1之间的数字)

Random rand = new Random;
long accumulator = 1 + rand.nextInt(9); // ensures that the 16th digit isn't 0
for(int i = 0; i < 15; i++) {
    accumulator *= 10L;
    accumulator += rand.nextint(10);
}

我可能在for循环中是一对一的,如果需要,请使用i < 16

您想要16位数字的原因可能是此处的关键。

如果只需要一个可能与最大的16位数字一样大的数字,请使用您偏爱的随机数生成器生成09 999 999 999 999 999之间的随机数。 然后,您可以根据需要添加前导零以精确显示16个字符。

如果您明确希望有16个十进制数字,而第一个数字不能为零,则可以尝试以999 999 999 999 999作为上限进行相同的练习,并在前面添加一个从1到9的随机数字(将其乘以a)。四分位数,然后与另一个随机数求和)(如果需要)。

还有很多其他选择,但是这些选择可能是最显而易见,最容易实现的。 我很确定Java中有本机工具可以生成随机长整数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM