Math.random
Math类中存在一种random()方法,用于产生随机的数字和字符
①随机数字的产生
random()语法
(int)(Math.random()*n):
返回大于等于0且小于n的随机数
m+(int)(Math.random()*n):
返回大于等于m且小于m+n(不包括m+n)的随机数
ps:如果要产生m到n之间的数:
代码为:m+(int)(Math.random()*(n-m))
程序演示:
public class 随机数 {
/*
* 定义产生偶数的方法
* @param num1起始范围参数
* @param num2终止范围参数
* @return 随机的范围内偶数
*/
public static int GetEvenNum(double num1,double num2) {
//产生num1~num2之间的随机值
int s=(int)num1 + (int)(Math.random()*(num2-num1));
if(s%2==0) {
return s;
}else
return s+1;
}
public static void main(String[] args) {
System.out.println("任意一个2-32之间的偶数:"+GetEvenNum(2,32));
}
}
②随机字符的产生
固定字符段内的随机字符
如随机产生一个a-z之间的字符
(char)('a'+Math.random()*('z'-‘a’+1));
所以可以推出随机产生两个字符之间的字符为:
(char)('cha1'+Math.random()*(cha2-cha1+1));
程序演示:
/*定义获取任意字符之间的随机字符
* 随机生成a-z之间的字符
* (char)(‘a’+Math.random()*('z'-'a'+1))
* 随机生成cha1-cha2之间的字符
* (char)(cha1+Math.random()*(cha2-cha1+1))
*/
public class 随机字母 {
public static char GetRandomChar(char cha1,char cha2) {
char s = (char)(cha1+Math.random()*(cha2-cha1+1));
return s;
}
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'));
}
}
Random类获得随机数
在Random类中提供了获取各种数据类型随机数的方法,我用程序直接演示给大家看
import java.util.Random;
//引用java.util.Random类
public class Random类随机字符数字等的产生 {
public static void main(String[] args) {
Random r = new Random();//实例化一个Random类
System.out.println("随机产生一个整数:"+r.nextInt());
System.out.println("随机产生一个大于等于0小于10的整数"+r.nextInt(10));
System.out.println("随机产生一个布尔Boolean型:"+r.nextBoolean());
System.out.println("随机产生一个双精度型的值:"+r.nextDouble());
System.out.println("随机产生一个浮点型的值:"+r.nextFloat());
}
}
结果如下:
随机产生一个整数:-1215968291
随机产生一个大于等于0小于10的整数1
随机产生一个布尔Boolean型:false
随机产生一个双精度型的值:0.05971188146365236
随机产生一个浮点型的值:0.9931316