我想创建一个提供随机 24 位数字的程序。我尝试了不同的方法,但我不知道如何制作。一个示例响应是392834756843456012349538
,它只是一个随机的 24 位数字。
问问题
4397 次
5 回答
3
这是我能想到的最简单的方法:
@Test
public void random24Numbers() {
String random = RandomStringUtils.random(24, false, true);
System.out.println(random);
}
这使用RandomStringUtils.random。第一个参数是长度,第二个参数是“无字母”。第三个说,“给我数字”。这是一个示例输出:
564266161898194666197908
是的,它是一个字符串,但我假设您知道如何将字符串转换为数字。
于 2013-06-25T20:08:12.697 回答
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
于 2013-11-19T22:15:07.330 回答
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);
于 2013-06-25T20:14:13.723 回答
0
以下仅使用核心 java.lang 的东西,似乎完成了工作。与其他解决方案一样,结果是字符串而不是 java 数字类型,因为基本的 java 数据类型都不能存储 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));
}
}
于 2013-06-25T20:21:49.267 回答
0
请参阅如何在 Java 中生成随机 BigInteger 值?其中提供的代码确实生成不大于的 BigInteger 随机数n
:
BigInteger r;
do {
r = new BigInteger(n.bitLength(), rnd);
} while (r.compareTo(n) >= 0);
于 2013-06-26T13:00:22.277 回答