java随机数生成器,生成二十四个数字

时间:2013-06-25 20:03:15

标签: java random numbers generator

我想创建一个提供随机24位数字的程序。我尝试了不同的方法,但我无法弄清楚如何制作它。一个示例响应是392834756843456012349538,这只是一个随机的二十四位数字。

5 个答案:

答案 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);