Java随机数

67 篇文章 16 订阅

在实际开发中产生随机数的使用是很普遍的,所以在程序中进行产生随机数操作很重要。在Java中主要提供两种方式产生随机数,分别为调用Math类的random()方法和Random类提供的产生各种数据类型随机数的方法。

1、Math.random()方法

在Math类中存在一个random()方法,用于产生随机数字,这个方法默认生成大于等于0.0小于1.0的double型随机数,即0<=Math.random()<1.0,虽然Math.random()方法只可以产生0~1之间的double型数字,其实只要在Math.random()语句上稍加处理,就可以使用这个方法产生任意范围的随机数。

公式:(数据类型)(最小值+Math.random()*(最大值-最小值+1))

上述公式为产生的随机数,范围包含最小值与最大值。

1.1 生成随机整数

/**
 * 生成随机整数(包含起始与终止范围)
 * 
 * @author pan_junbiao
 * @param num1 起始范围参数
 * @param num2 终止范围参数
 * @return 随机整数
 */
public static int GetRandomNum(int num1, int num2)
{
	int result = (int) (num1 + Math.random() * (num2 - num1 + 1));
	return result;
}

public static void main(String args[])
{
	// 生成100至999的随机整数
	System.out.println("任意一个100值999的整数:" + GetRandomNum(100, 999));
}

1.2 生成随机字符

/**
 * 生成随机字符(包含起始与终止范围)
 * 
 * @author pan_junbiao
 * @param char1 起始范围参数
 * @param char2 终止范围参数
 * @return 随机字符
 */
public static char GetRandomChar(char char1, char char2)
{
	char result = (char) (char1 + Math.random() * (char2 - char1 + 1));
	return result;
}

public static void main(String args[])
{
	// 获取a~z之间的随机字符
	System.out.println("任意小写字符:" + GetRandomChar('a', 'z'));

	// 获取A~Z之间的随机字符
	System.out.println("任意大写字符:" + GetRandomChar('A', 'Z'));

	// 获取0~9之间的随机字符
	System.out.println("0到9任意数字字符:" + GetRandomChar('0', '9'));
}

执行结果:

 

2、Random类

除了Math类中的random()方法可以获取随机数之外,在Java中还提供了一种可以获取随机数的方式,那就是java.util.Random类。可以通过实例化一个Random对象创建一个随机数生成器。

语法如下:

Random r=new Random();

其中,r是指Random对象。

在Random类中提供了获取各种数据类型随机数的方法,下面举例几个常用的方法。

方法说明
public int nextInt()返回一个随机整数。
public int nextInt(itn)返回大于等于0且小于n的随机整数。
public long nextLong()返回一个随机长整型值。
public boolean nextBoolean()返回一个随机布尔型值。
public float nextFloat()返回一个随机浮点型值。
public double nextDouble()返回一个随机双精度型值。
public double nextGaussian()返回一个概率密度为高斯分布的双精度值。

2.1 生成各种类型的随机数

【示例】使用Random对象生成各种类型的随机数,并输出结果。

import java.util.Random;

/**
 * 使用Random对象生成各种类型的随机数
 * @author pan_junbiao
 */
public class RandomTest
{
	public static void main(String args[])
	{
		// 实例化一个Random类
		Random r = new Random();

		// 随机产生一个整数
		System.out.println("随机产生一个整数:" + r.nextInt());

		// 随机产生一个大于等于0且小于10的整数
		System.out.println("随机产生一个大于等于0且小于10的整数:" + r.nextInt(10));

		// 随机产生一个布尔类型的值
		System.out.println("随机产生一个布尔类型的值:" + r.nextBoolean());

		// 随机产生一个双精度型的值
		System.out.println("随机产生一个双精度型的值:" + r.nextDouble());

		// 随机产生一个浮点型的值
		System.out.println("随机产生一个浮点型的值:" + r.nextFloat());

		// 随机产生一个概率密度为高斯分布的双精度值
		System.out.println("随机产生一个概率密度为高斯分布的双精度值:" + r.nextGaussian());
	}
}

运行结果:

2.2 生成随机字符串

【示例】使用Random对象随机生成字符串。

import java.util.Random;

/**
 * 使用Random对象随机生成字符串
 * @author pan_junbiao
 **/
public class RandomString
{
    public static void main(String[] args)
    {
        System.out.println("随机生成6位数的字符串:" + getRandomString(6));
        System.out.println("随机生成8位数的字符串:" + getRandomString(8));
        System.out.println("随机生成10位数的字符串:" + getRandomString(10));
    }

    /**
     * 随机生成字符串
     * @param length 随机字符串长度
     */
    public static String getRandomString(int length)
    {
        String base = "abcdefghijklmnopqrstuvwxyz0123456789";
        Random random = new Random();
        StringBuffer sb = new StringBuffer();
        for(int i=0; i< length; i++)
        {
            int number = random.nextInt(base.length());
            sb.append(base.charAt(number));
        }
        return sb.toString();
    }
}

执行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

pan_junbiao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值