java中如何产生一个16位数字组成的随机字符串?

如题所述

方法如下:

Random ran=new random();

boolean flag=true;

while(flag){ 

int a=ran.nextInt(99999999); 

int b=ran.nextInt(99999999);

long c=a*100000000L+b; 

if(c>1000000000000000L&&c<9999999999999999L){

flag=false;
c1=c;
String num=String.valueOf(c1); 

Java生成随机字符串的两种方式:

1、生成的字符串每个位置都有可能是str中的一个字母或数字,需要导入的包是import java.util.Random;

//length用户要求产生字符串的长度。

public static String getRandomString(int length){

String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

Random random=new Random();

StringBuffer sb=new StringBuffer();

for(int i=0;i<length;i++){

int number=random.nextInt(62);

sb.append(str.charAt(number));

}

return sb.toString();

}

2、可以指定某个位置是a-z、A-Z或是0-9,需要导入的包是import java.util.Random;

//可以指定字符串的某个位置是什么范围的值。

public static String getRandomString2(int length){

Random random=new Random();

StringBuffer sb=new StringBuffer();

for(int i=0;i<length;i++){

int number=random.nextInt(3);

long result=0;

switch(number){

case 0:

result=Math.round(Math.random()*25+65);

sb.append(String.valueOf((char)result));

break;

case 1:

result=Math.round(Math.random()*25+97);

sb.append(String.valueOf((char)result));

break;

case 2:    

sb.append(String.valueOf(new Random().nextInt(10)));

break;

}

}

return sb.toString();

}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答