我想创建一个提供随机24位数字的程序。我尝试了不同的方法,但我无法弄清楚如何制作它。一个示例响应是392834756843456012349538
,这只是一个随机的二十四位数字。
答案 0 :(得分:3)
这是我能想到的最简单的方法:
@Test
public void random24Numbers() {
String random = RandomStringUtils.random(24, false, true);
System.out.println(random);
}
这使用RandomStringUtils.random。第一个参数是长度,第二个参数是“无字母”。第三个说,“给我数字”。这是一个示例输出:
564266161898194666197908
是的,它是一个字符串,但我会假设您知道如何将字符串转换为数字。
答案 1 :(得分:2)
此示例适用于生成“数字”长度的数量,包括前导零,并且不需要任何外部jar文件。
private String generateInt(int digits) {
StringBuilder str = new StringBuilder();
Random random = new Random();
for(int i = 0; i < digits; i++) {
str.append(random.nextInt(10));
}
return str.toString();
}
示例回复是:
081140561664657769754888
答案 2 :(得分:0)
int[] randomNumbers = new int[24];
for(int i = 0; i < 24; i++) {
randomNumbers[i] = (int)Math.floor(Math.random() * 10);
System.out.println(randomNumbers[i]);
}
在回复下面的评论时添加了使用此随机数序列设置标签的代码:
String randomString = "";
for(int i = 0; i < 24; i++) {
randomString = randomString.concat(String.valueOf((int)Math.floor(Math.random() * 10)));
}
NumbersLabel.setText(randomString);
答案 3 :(得分:0)
以下只使用核心java.lang的东西,似乎完成了工作。与其他解决方案一样,结果是字符串而不是java数字类型,因为none of the basic java datatypes可以存储23位十进制数。
import java.lang.Math;
import java.lang.StringBuilder;
public class random24 {
static char digits[] = {'0','1','2','3','4','5','6','7','8','9'};
public static char randomDecimalDigit() {
return digits[(int)Math.floor(Math.random() * 10)];
}
public static String randomDecimalString(int ndigits) {
StringBuilder result = new StringBuilder();
for(int i=0; i<ndigits; i++) {
result.append(randomDecimalDigit());
}
return result.toString();
}
public static void main(String[] args) {
System.out.println(randomDecimalString(24));
}
}
答案 4 :(得分:0)
请参阅How to generate a random BigInteger value in Java?,其中提供的代码生成的BigInteger随机数不大于n
:
BigInteger r;
do {
r = new BigInteger(n.bitLength(), rnd);
} while (r.compareTo(n) >= 0);