在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位的随机数的主要内容,如果未能解决你的问题,请参考以下文章