java中如何生成隨機數?
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) {
// Long lon=new Long(Long.parseLong(getRandomString(4)));
//System.out.println(">>>>>>>"+lon);
for(int i=0; i<5000000;++i){
Date date=new Date();
String sf = new SimpleDateFormat("yyMMddhhmmss").format(date);
String strid2=sf+getRandomString(4);
// System.out.println("+++++++"+strid2);
long id=Long.parseLong(strid2);
System.out.println(">>>>>>>"+id);
}
// String i="1234567890134456";
// long id=Long.parseLong(i);
}
}