Java中随机长值的生成

Java中随机长值的生成,java,random,random-sample,Java,Random,Random Sample,我尝试使用以下代码在Java中生成两个9位长的随机长值: for (int i =0;i<2;i++) { String axisIdStr = Long.toString((long)(System.nanoTime() * (Math.random() * 1000))); System.out.println("@@@@@@@@ axisIdStr "+axisIdStr); String axId = axisIdStr.su

我尝试使用以下代码在Java中生成两个9位长的随机长值:

for (int i =0;i<2;i++) {                
    String axisIdStr = Long.toString((long)(System.nanoTime() * (Math.random() * 1000)));
    System.out.println("@@@@@@@@ axisIdStr "+axisIdStr);
    String axId = axisIdStr.substring((axisIdStr.length() -9), axisIdStr.length()) ;
}

for(int i=0;i根据您的要求,您需要生成9位随机数。正如在评论中建议的那样,您可以使用random。下面我刚刚给出了一个在两个数字之间生成随机数的解决方案

long lowerLimit = 123456712L;
long upperLimit = 234567892L;
Random r = new Random();
long number = lowerLimit+((long)(r.nextDouble()*(upperLimit-lowerLimit)));

您可以创建一个大小为9的int数组a[],并填充0-9的随机整数。然后将数组相加,并相应地相乘

a[8]*1 + a[7]*10 + a[6]*100 ...
您需要确保[0]只接受第1-9位数字

为了获得更多的随机序列,理想情况下,您应该处理字符串,然后您将能够在随机“字符串”的起始位置获得0,而不是数字

或者生成一些伪随机数,去掉最后9个数字

这是DIY版的,你可以用已经存在的东西来完成


关于

生成随机整数并将其强制转换为长整数有什么问题?为什么不直接使用
随机
?它有
.nextLong()
…我想写我自己的函数。这就是为什么我没有使用.nextLong。@fge@fge.Will.nextLong总是给我一个超过9位数的值?@RahulGoyal:triple,使用
random.nextInt(900_000)+100_000
为什么事情会这么复杂?