首先,计算生成的并不是真正意义上的随机数,二是伪随机数。
利用Random中的nextint()方法可以生成0~1的随机数(int的i要大写)。
利用范围之差作为nextint()之后所加数,括号内填范围最小值即可生成。
练习 要求:生成23~45的随机数
import java.util.Random;
public class text {
public static void main(String[] args) {
xxx();
}
public static void xxx(){
Random a =new Random();
int x=a.nextInt(23)+22;
//nestInt (生成0~1的随机数)。
System.out.println("伪随机数为:"+x);
}
}
记住 在包下插入Random工具类。
随机数常用来生成验证码,加强练习如下
要求:每次运行生成4位随机验证码(范围在0~9,a~z,A~Z)。
第一种方法如下:
import java.util.Random;
public class text3 {
public static void main(String[] args) {
xxx(4); //括号中可改变生成随机几位随机验证码
}
public static void xxx(int b) {
int a[] = new int[b];
int m = 0;
while (m < b) {
int t = (int) (Math.random() * 122);
if ((t >= 0 && t <= 9) || (t >= 65 && t <= 90) || (t >= 97 && t <= 122)) {
a[m] = t;
if (a[m] >= 0 & a[m] <= 9) {
System.out.print(a[m] );
m++;
} else {
System.out.print((char) a[m]);
m++;
}
}
}
}
}
第二中方法:
import java.util.Random;
public class text3 {
public static void main(String[] args) {
System.out.println(text(4));
public static String text(int n){
StringBuffer res= new StringBuffer();
String str="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
Random rnd=new Random();
for(int i=0;i<n;i++){
int index=rnd.nextInt(str.length());
char ch=str.charAt(index);
res.append(ch);
}
return res.toString();
}
}
以上代码只为练习参考所用(毕竟我也是参考写的。。。。)