Java常用类中随机数讲解与实践

本文介绍了在Java中使用Random类和Math.random()方法生成随机数的技巧。包括生成不同范围内的整数、双精度浮点数及特定长度的随机字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中时长用到不同长度的随机数,这里简要说明一些方法。

【1】Random

代码实例一如下:

Random random = new Random();
int nextInt = random.nextInt();

其nextInt()的JavaDoc如下:

Returns the next pseudorandom, uniformly distributed int value from this random number generator's sequence. 
The general contract of nextInt is that one int value is pseudorandomly generated and returned. 
All 2 32(The 32 square of 2) possible int values are produced with (approximately) equal probability. 

从随机数生成序列中返回下一个伪随机,均匀分布的int 值。2的32次方在内的int值返回的概率是相等的。


代码实例一如下:

Random random = new Random();
int nextInt2 = random.nextInt(10);
System.out.println(nextInt2);

其nextInt(10)的JavaDoc如下:

Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence. 
The general contract of nextInt is that one int value in the specified range is pseudorandomly generated and returned.
 All bound possible int values are produced with (approximately) equal probability.

主要意思 : 返回 0-指定值区间的一个int 值 ,用区间表示即 [0 , end)。如nextInt(10)返回区间 [0 , 10)。


举例如返回六位随机数:

Random random = new Random();
int nextInt2 = random.nextInt(10)+100000;

这样返回的相同数概率太大了,换成如下方法:

Random random = new Random();
StringBuilder stringBuilder = new StringBuilder();
for(int i=1;i<7;i++){
	int nextInt2 = random.nextInt(10);
	stringBuilder.append(String.valueOf(nextInt2));
}
System.out.println(stringBuilder.toString());

或者试试如下方法:

String sources = "0123456789"; // 加上一些字母,就可以生成pc站的验证码了  
Random rand = new Random();  
StringBuffer flag = new StringBuffer();  
for (int j = 0; j < 6; j++){  
    flag.append(String.valueOf(sources.charAt(rand.nextInt(9))));  
}  
System.out.println(flag.toString());  


【2】Math.random()

代码实例一如下:

double random = Math.random();
System.out.println(random);

其random()的Javadoc如下:

Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0.
Returned values are chosen pseudorandomly with (approximately) uniform distribution from that range. 

主要意思: 从指定范围大约均匀分布的值中伪随机选择一个返回,该值为区间在[0.0 , 1.0)之间的double值。

举例如返回六位随机数:

int a=(int) ((Math.random()*9+1)*100000);
System.out.println(a);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流烟默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值