gpt4 book ai didi

Java随机数的长度、限制、字符和字母

转载 作者:行者123 更新时间:2023-12-01 09:18:26 25 4
gpt4 key购买 nike

嗨,我是 Java 新手,我正在尝试生成一个随机数 11 位随机数。如何以“[xxx]-xxx#AxAxx”格式执行此操作,其中 x 是数字 0-9,A 是任意大写字母。括号、破折号和散列也必须位于正确的位置。另外,限制是最后两位数字不能是 5 或 6,第一位数字不能是 0。最好的方法是什么?您必须使用字符串和随机类吗?谢谢。

最佳答案

FWIW,您可以做到这一点,而无需循环进行错误值拒绝或黑客添加前导零:

import static java.lang.String.format;

import java.util.Random;

class Generator {
Random random = new Random();

private int not5or6() {
int val = random.nextInt(8);
return val < 5 ? val : val + 2;
}

String randomKey() {
StringBuilder s = new StringBuilder();
s.append('[');
s.append(random.nextInt(900) + 100);
s.append("]-");
s.append(format("%03d", random.nextInt(1000)));
s.append('#');
s.append((char) ('A' + random.nextInt(26)));
s.append(random.nextInt(10));
s.append((char) ('A' + random.nextInt(26)));
s.append(not5or6());
s.append(not5or6());
return s.toString();
}

// Or if you you don't like StringBuilder, here's another way...
String randomKey2() {
return format("[%d]-%03d#%c%d%c%d%d",
random.nextInt(900) + 100,
random.nextInt(1000),
(char) ('A' + random.nextInt(26)),
random.nextInt(10),
(char) ('A' + random.nextInt(26)),
not5or6(),
not5or6());
}

public static void main(String[] args) {
Generator g = new Generator();
for (int i = 0; i < 100; i++) System.out.println(g.randomKey());
}
}

关于Java随机数的长度、限制、字符和字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40346902/

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