在JAVA里怎么获得9~11位的随机数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在JAVA里怎么获得9~11位的随机数相关的知识,希望对你有一定的参考价值。

获取随机数的方法,参数是需要获取的随机数的长度
/**
* 需要的长度
* @param length
*/
private static void getRadom(int length)
//获取一个随机数
double rand = Math.random();
//将随机数转换为字符串
String str = String.valueOf(rand).replace("0.", "");
//截取字符串
String newStr = str.substring(0, length);
System.out.println(newStr);

其实就是利用Math.random()方法生成一个随机的double数,然后转换为字符串,在字符串中去做操作
参考技术A java.security.SecureRandom sr=new java.security.SecureRandom();
long rnd;
do
rnd=sr.nextLong();

while(rnd>1e13 || rnd<1e9);
System.out.println(rnd);
参考技术B Random rand = new Random();
long l = 0;
//100000000000-->11个0
//100000000-->8个0
double n = 100000000000D - 100000000D;
for (int i = 0; i < 10; i++)
l = (long)(rand.nextDouble() * n + 100000000D);
System.out.println(l);
追问

哇,你这样做真的可以耶,我本来也想到了的,但是我为了省代码就写成了:
Random rand = new Random();
long l = 0;
for (int i = 0; i < 10; i++)
l = (long)(rand.nextDouble() * 99000000000L + 100000000);
System.out.println(l);

这样,为什么其结果就是错误的呢?

追答

奇怪我把你代码复制过来没错啊

追问

呵呵,是我搞错了,谢谢你

本回答被提问者采纳

java怎么获得以当前时间为种子的随机数?

import java.util.Random;

public class RandomDemo 
public static void main(String[] args) 
long t = System.currentTimeMillis();//获得当前时间的毫秒数
Random rd = new Random(t);//作为种子数传入到Random的构造器中
System.out.println(rd.nextInt());//生成随即整数

追问

那如果说要生成1到100以当前时间为种子的随机数呢?

追答//传入一个范围参数就可以控制了
System.out.println(rd.nextInt(100));//生成随即整数 0~99包含0 也包含 99
System.out.println(rd.nextInt(101));//生成随即整数 0~100包含0 也包含 100

参考技术A
Threads1 t1 =new Threads1();
Threads2 t2 =new Threads2();
//实例化实现接口的对象
Thread th1=new Thread(t1);
Thread th2=new Thread(t2);
//使用Thread创建实现Runnable接口的线程
th1.start();
th2.start();
for(int i=0;i<10;i++)
System.out.println("Main End");

以上是关于在JAVA里怎么获得9~11位的随机数的主要内容,如果未能解决你的问题,请参考以下文章

编写一个Java程序,开始时生成一个0-9的随机数字,当用户会员号的百位与十位的差值与随机数字相等时为中奖

jquery怎么校验字母和数字

java编程 随机产生6位的数字

java怎么获得以当前时间为种子的随机数?

如何在SQL里生成四位随机数?

nodejs怎么生成3rdsession