java两种方法生成随机数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
//流水顺序码 5位数字
int n = (int) (Math.random() * 100000);
String userId = String.format("%05d", n);

================================================分界==========================================

package com.test.util;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

public class CharacterUtils {
   
    /**
     * 第一种方法;length为产生的位数
     */

    public static String  getRandomString(int length)throws NumberFormatException{
        //定义一个字符串(A-Z,a-z,0-9)即62位;
        String str="zxcvbnmlkjhgfdsaqwertyuiopQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
        //String str="1234567890";
        //由Random生成随机数
        Random  random=new Random();   
       
        StringBuffer sb=new StringBuffer();
        //长度为几就循环几次
        for(int i=0; i<length; ++i){
            //产生0-61的数字
            int number=random.nextInt(62);
            //将产生的数字通过length次承载到sb中
            sb.append(str.charAt(number));
        }
        //将承载的字符转换成字符串
        return sb.toString();
    }

    /**
     * 第二种方法
     */

    public static String getRandomString2(int length){
        //产生随机数
        Random random=new Random();
        StringBuffer sb=new StringBuffer();
        //循环length次
        for(int i=0; i<length; i++){
            //产生0-2个随机数,既与a-z,A-Z,0-9三种可能
            int number=random.nextInt(3);
            long result=0;
           
            switch(number){
            //如果number产生的是数字0;
            case 0:
                //产生A-Z的ASCII码
                result=Math.round(Math.random()*25+65);
                //将ASCII码转换成字符
                sb.append(String.valueOf((char)result));
                break;
                case 1:
                    //产生a-z的ASCII码
                    result=Math.round(Math.random()*25+97);
                    sb.append(String.valueOf((char)result));
                break;
                case 2:
                    //产生0-9的数字
                    sb.append(String.valueOf(new Random().nextInt(10)));
                break; 
            }
        }
        return sb.toString();
    }
   
    public static void main(String[] args) {
       
        for(int i=0; i<5000000;++i){
            Date date=new Date();
            String sf = new SimpleDateFormat("yyMMddhhmmss").format(date);
            String strid2=sf+getRandomString(4);
            long id=Long.parseLong(strid2);
            System.out.println(">>>>>>>"+id);
        }
    }

}
ˆ Back To Top