gpt4 book ai didi

给定长度的Java随机数

转载 作者:IT老高 更新时间:2023-10-28 20:52:34 25 4
gpt4 key购买 nike

我需要在 Java 中生成一个正好为 6 位的随机数。我知道我可以在随机器上循环 6 次,但在标准 Java SE 中还有其他方法吗?

编辑 - 后续问题:

现在我可以生成我的 6 位数字,但我遇到了一个新问题,我尝试创建的整个 ID 的语法为 123456-A1B45。那么我如何随机化最后 5 个可以是 A-Z 或 0-9 的字符呢?我正在考虑使用 char 值和 randomice 48 - 90 之间的数字,然后简单地删除任何获得代表 58-64 的数字的值。这是要走的路还是有更好的解决方案?

编辑 2:

这是我的最终解决方案。感谢大家的帮助!

protected String createRandomRegistryId(String handleId)
{
// syntax we would like to generate is DIA123456-A1B34
String val = "DI";

// char (1), random A-Z
int ranChar = 65 + (new Random()).nextInt(90-65);
char ch = (char)ranChar;
val += ch;

// numbers (6), random 0-9
Random r = new Random();
int numbers = 100000 + (int)(r.nextFloat() * 899900);
val += String.valueOf(numbers);

val += "-";
// char or numbers (5), random 0-9 A-Z
for(int i = 0; i<6;){
int ranAny = 48 + (new Random()).nextInt(90-65);

if(!(57 < ranAny && ranAny<= 65)){
char c = (char)ranAny;
val += c;
i++;
}

}

return val;
}

最佳答案

要生成一个 6 位数字:

使用RandomnextInt如下:

Random rnd = new Random();
int n = 100000 + rnd.nextInt(900000);

请注意,n 永远不会是 7 位数字 (1000000),因为 nextInt(900000) 最多可以返回 899999

So how do I randomize the last 5 chars that can be either A-Z or 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();

关于给定长度的Java随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5392693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com