在写业务的时候,有时要使用随机数,现总结了几种写随机数的方法如下:
public class TestRandom {
//Math.random() 生成 0.0--1.0 之间的随机数;
//如果直接 Math.random()*1000000,会生成随机6位数,也可能会生成5位4位。(因为可能生成0.003这样的数);
// (Math.random()*9+1) 一定是大于 1 小于 10 的;Math.random()*9+1)*100000 则一定大于 100000 小于 1000000;
void test1(){
for(int i = 1 ; i <= 50 ; i++){
System.out.println("随机数 "+i+" 是: "+(int)((Math.random()*9+1)*100000));
}
}
//random.nextInt(10) 生成 0-9 之间的随机数;
//生成6次,拼接成字符串
void test2(){
Random random = new Random();
for(int i = 1 ; i <= 50 ; i++){
String result = "";
for(int j = 0; j < 6; j++){
result += random.nextInt(10);
}
System.out.println("随机数 "+i+" 是: "+result);
}
}
//random.nextInt(999999) 生成 0-999999 之间的随机数;
//再加上100000 可得到 100000-999999 之间的随机数
void test3(){
Random random = new Random();
int num = 0;
for(int i = 1 ; i <= 50 ; i++){
num = random.nextInt(999999);
if(num < 100000) num += 100000;
System.out.println("随机数 "+i+" 是: "+num);
}
}
//这种方法的思路是在一个指定的字符串内随机生成一个子字符串;
void test4(){
for (int i = 1; i <= 50; i++){
String sources = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"; // 数字加上一些字母,就可以生成6位的验证码
Random random = new Random();
StringBuffer flag = new StringBuffer();
for (int j = 0; j < 6; j++){
flag.append(sources.charAt(random.nextInt(36)) + "");
}
System.out.println("随机数 "+i+" 是: "+flag.toString());
}
}
//测试
public static void main(String[] args) {
TestRandom test = new TestRandom();
System.out.println("这是随机生成的6位数");
test.test4();
}
}
网友评论