random 类来产生随机数。程序开发人员可以通过实例化一个 Random 对象来
创建一个随机
数的生成器。
如
Random i=new Random()。通过这条语句就利用了 Random 类创建了一个
随机数的生成器。
不过以这种方法创建随机数时,与采用
Random 方法产生随机数的机制
不同。
利用现在这种方式实例化对象时,
Java 编译器会以系统当前的时间作为随机数生成
器的种子。
由于时间时时刻刻在变化的。若以这个时间作为生成器的种子,就可以保证生成
的随机数真的是随机的,其生成的随机数重复率会大大的降低。
利用这种方法其比较方便。如可以利用提供的关键字,让程序返回一个随机的整数
(采
用
int nextInt(10))等等。不过其返回控制要比 Random 方法困难一点。如现在需要系统提供
一个
10 到 50 之间的随机奇数,利用这个 Random 类就无法完成。
也就是说,利用这个
Random 类来生成随机数,其只能够控制上限,而不能够控制下限。换一句话说,其可以指
定最大的随机数范围,而不能够指定最小的随机数范围。所以,在灵活性上,其比
Random
方法要稍微差一点。
另外利用这个方法来实现的话,必须先创建一个对象。也就是说利用
Randow 类来创
建对象。这跟
Randow 方法不同。像上面举的例子中,Randow 方法本身就是一个 math 类
中方法,可以直接调用,省去对象创建的方法。为此笔者建议各位读者与程序开发人员,最
好 还是使用
Random 方法来创建随机数。只有在生成一些比较 特殊的随机数时采用
Random 类。如现在需要生成一个概率密度为高斯分布的双精度值随机数时,则通过采用
Random 类的方法来创建随机数相对来说比较简单一点。
三、产生随机的字符。
上面介绍的两种方法,产生的都是随机的数值型数据。但是有时候用户可能还需要产生
随机的字符。其实也可以利用
random 方法来产生随机字符。如可以利用代码生成一个随机
的小写字符:
(char)(‘a’+Math.random()*(‘z’-‘a’+1))。其实这跟生成任意两个数之间的随机数
类似。通过以上的代码就可以生成一个范围之内的任意随机字符。通过对这个代码进行适当
的修整,还可以生成任意两个字符之间的随机字符与任意大写字符的随机字符。其转换的方
式跟上面提到的任意范围之内的随机数类似。各位读者若感兴趣的话,可以自己进行测试一
下。师傅领进门,修行在自身。如果笔者在这里一股脑儿将所有的答案告诉大家,大家的印
象不会很深。大家若回去自己动手试试看,反而更容易记住。
笔 者 在 这 里 给 大 家 一 个 提 示 ,
只 需 要 根 据
m+(int)
(Math.Random()*(n-m))这条语句来调整(char)(‘a’+Math.random()*(‘z’-‘a’+1))这个代码即可。
最后笔者需要强调的一点就是在用户传入参数的时候,最好要对用户传入的参数进行
合法性检查。以免用户传入的参数不符合既定的要求,如参数需要的是数值型的数据而传入
的却是字符型的数据,而导致程序运行出错。
来