java中如何生成随机数?

本文介绍了两种在Java中生成特定格式随机字符串的方法。第一种方法使用预定义的字符集生成固定长度的随机字符串。第二种方法则能生成包含大小写字母及数字的随机字符串,提供了更多样化的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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



}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值