java怎么随机生成一个字符串?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java怎么随机生成一个字符串?相关的知识,希望对你有一定的参考价值。

就是和随机数一样随机生成一个字符串

/**
* 产生随机字符串
* */
private static Random randGen = null;
private static char[] numbersAndLetters = null;

public static final String randomString(int length)
if (length < 1)
return null;

if (randGen == null)
randGen = new Random();
numbersAndLetters = ("0123456789abcdefghijklmnopqrstuvwxyz" +
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray();
//numbersAndLetters = ("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ").toCharArray();

char [] randBuffer = new char[length];
for (int i=0; i<randBuffer.length; i++)
randBuffer[i] = numbersAndLetters[randGen.nextInt(71)];
//randBuffer[i] = numbersAndLetters[randGen.nextInt(35)];

return new String(randBuffer);


//调用此方法randomString(int),int是字符串的长度,即可产生指定长度的随机字符串。
参考技术A 我的思路:
1,定义一个字符数组;
2,随机生成一个int数,范围是此数组的长度;
3,利用生成的int数,取数组中的字符;
4,可以用for循环,多取几次,并连接成字符串;
仅作参考,不懂再问!
参考技术B public static String getRandomString(int length) //length表示生成字符串的长度
String base = "abcdefghijklmnopqrstuvwxyz0123456789"; //生成字符串从此序列中取
Random random = new Random();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++)
int number = random.nextInt(base.length());
sb.append(base.charAt(number));

return sb.toString();
参考技术C 两个方法。 1 。生成2~3为随机数 将他们最为ascii编码生成字符。例如 随即生成 65 就是 “A”以此类推。缺点 会生成 无法显示的字符 例如 13 回车等。
2。做个数组里面存入你要生成的字符编码 例如a~z,0~9,A~Z 等。 然后随即生成一个数 , 把这个数作为下标取字符。
参考技术D 元素是一样的,字符串有字符组成,字符有具体的int码
如果想偷懒,commons-lang.jar其下的现成的类StringUtils

java生成指定范围内随机秒数

我想生成一个在20~50秒内的随机秒数 请问该怎么生成呢?

参考技术A (int)(Math.random()*30+20) 不包含50;(int)(Math.random()*31+20) 包含50本回答被提问者采纳 参考技术B int a=(int)(Math.random()*30+20);

以上是关于java怎么随机生成一个字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何用java随机生成一个字母

在java语言中如何随机地生成一个字符串

java随机生成字符串

大牛整理:java怎么随机生成字符串

用C#产生随机字符窜

怎么用c语言随机生成一串字符串,字符串要求8-16位并且包含大小写字母.数字.和符号