`
sxdtzhaoxinguo
  • 浏览: 215023 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java中如何生成随机数?

 
阅读更多

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



}


}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics