取随机数
- random方法只能生成小于1的随机小数(包括0和正小数),并不能生成随机整数。
- Random随机数工具包,可以解决random方法的问题:
import java.util.Random;
该工具实例化(new)后,nextInt 方法生成int类型的随机整数、nextLong 方法生成long类型的随机长整数、nextfloat 方法生成float类型的随机浮点小数、nextdouble 方法生成double类型的随机双精度小数。
(注:nextInt 和 nextLong 方法得到的随机整数可能是负数,而其他两个只能是正小数)
接下来就详细讲解Random中的nextInt,其他的都跟其一样。
Java Random.next***()
语法
int nextInt() //随机返回一个int型整数
int nextInt(int num) //随机返回一个值在[0,num)的int类型的整数,包括0不包括num
实例
/**
* 生成任意整数
*/
@Test
public void RandomNextIntDemo1(){
Random r = new Random();
int n1 = r.nextInt();
System.out.println("d1:"+n1);
}
/**
* 生成[0,10)区间的整数
*/
@Test
public void RandomNextIntDemo2(){
Random r = new Random();
int n2 = r.nextInt(10);
int n3 = Math.abs(r.nextInt() % 10);
System.out.println("n2:"+n2);
System.out.println("n3:"+n3);
}
/**
* 生成[0,10]区间的整数
*/
@Test
public void RandomNextIntDemo3(){
Random r = new Random();
int n3 = r.nextInt(11);
int n4 = Math.abs(r.nextInt() % 11);
System.out.println("n3:"+n3);
System.out.println("n4:"+n4);
}
Java Math.random()
Java Math.random() 方法用于返回一个随机数,随机数范围为 0.0 =< Math.random < 1.0。
语法
static double random();
参数
- 这是一个默认方法,不接受任何参数。
返回值
- 该方法返回 double 值。
实例
public class Test{
public static void main(String args[]){
System.out.println( Math.random() );
System.out.println( Math.random() );
}
}
运行结果:
0.5444085967267008
0.7960235983184115
综合实例
生成一个 0-100 的随机数
import java.util.Random;
public class RandomTest{
public static void main(String[] args){
Random rand=new Random();
int i=(int)(Math.random()*100); // 生成0-100的随机数
int j=rand.nextInt(100); // 这里是一个方法的重载,参数的内容是指定范围
System.out.println("i:"+i+"\nj:"+j); // 分别输出两个随机数
}
}
运行结果:
i:55
j:34