给定长度的Java随机数
这个问题在这里已经有了答案:
生成范围在100000
到999999
。
// pseudo code
int n = 100000 + random_float() * 900000;
我很肯定你已经阅读了Random的文档,并且可以自己找出其余的。
要生成一个6位数字:
使用Random
和nextInt
如下:
Random rnd = new Random();
int n = 100000 + rnd.nextInt(900000);
请注意, n
永远不会是7位数(1000000),因为nextInt(900000)
最多可以返回899999
。
那么如何随机化最后5个可以是AZ或0-9的字符呢?
这是一个简单的解决方案:
// Generate random id, for example 283952-V8M32
char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();
Random rnd = new Random();
StringBuilder sb = new StringBuilder((100000 + rnd.nextInt(900000)) + "-");
for (int i = 0; i < 5; i++)
sb.append(chars[rnd.nextInt(chars.length)]);
return sb.toString();
如果你需要指定确切的字符长度,我们必须避免0值在前面。
最终字符串表示必须具有确切的字符长度。
String GenerateRandomNumber(int charLength) {
return String.valueOf(charLength < 1 ? 0 : new Random()
.nextInt((9 * (int) Math.pow(10, charLength - 1)) - 1)
+ (int) Math.pow(10, charLength - 1));
}
链接地址: http://www.djcxy.com/p/17657.html