1.使用java.util包下Random.nextInt(n)
该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。
//生成0-1000的随机数
Random r=new Random();
for(int i=0;i<10;i++){
System.out.println(r.nextInt(1000));
}
注意当Random带构造参数时,它生成的随机数每次都是一样的
Random r=new Random(10);
for(int i=0;i<10;i++){
System.out.println(r.nextInt());
}
2.使用Math.random()生成范围随机数
Math.random() 函数返回一个浮点, 伪随机数在范围从0到1,但是不包括1
Math.round(Math.random() * (max - min) + min);
//生成5位随机数
for(int i=0;i<10;i++){
System.out.println((int) (Math.random() * (99999 - 10000) +10000));
}
3.自定义随机生成字母和数字组合
/**
* 产生随机字符串
*/
private static Random randGen = null;
/**
* 数字和字母
*/
private static char[] numbersAndLetters = null;
/**
* 字符串
*/
public static String randomStr(int length) {
if (length < 1) {
return null;
}
if (randGen == null) {
randGen = new Random();
numbersAndLetters = ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray();
}
char[] randBuffer = new char[length];
for (int i = 0; i < randBuffer.length; i++) {
randBuffer[i] = numbersAndLetters[randGen.nextInt(35)];
}
return new String(randBuffer);
}
