使用Math类中的random()方法可以产生一个0~1之间的随机数,这种方式比较简单。为了变成需求,在java.util包中增加了Random类,它是一个能用48位数(seed,又称为种子)进行初始化的随机数生成器。
例如:
long seed=Calendar.getInstance().getTimeInMillis(); //使用Random类时,可以使用和时间有关的值来作随机种子。
objRandom=new Random(seed);
例题:
为小学生随机生成5道两位数相加的练习题。
import java.util.*;
public class GenQuestion
{
Random objRandom;
public GenQuestion()
{
long seed=Calendar.getInstance().getTimeInMillis();
objRandom=new Random(seed);
}
private void geneAndPrint()
{
StringBuffer buff=new StringBuffer();
buff.append("加法题的答案是:");
for(int i=1;i<=5;i++)
{
int a=objRandom.nextInt(90)+10;
int b=objRandom.nextInt(90)+10;
System.out.println(a+"+"+b+"=?");
buff.append(a+b);
buff.append(" ");
}
System.out.println(buff.toString());
}
public static void main(String args[])
{
GenQuestion obj=new GenQuestion();
obj.geneAndPrint();
}
}
说明:生成两位数的加法,则随机产生的两个数,都应该在10~99之间的范围内。要得到一个随机整数x,其中a<=x<=b,则应用“objRandom.next(b-a+1)+a”.
字符串的连接可以用加号,但是频繁的字符串连接时,使用加号进行字符串连接的效果较低,建议使用StringBuffer类。