java 生成 6 位的随机数

在写业务的时候,有时要使用随机数,现总结了几种写随机数的方法如下:

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();
    }

}

猜你喜欢

转载自blog.csdn.net/Jason_M_Ho/article/details/80267041