给定长度的Java随机数

这个问题在这里已经有了答案:

  • 如何在Java中的特定范围内生成随机整数? 57个答案

  • 生成范围在100000999999

    // pseudo code
    int n = 100000 + random_float() * 900000;
    

    我很肯定你已经阅读了Random的文档,并且可以自己找出其余的。


    要生成一个6位数字:

    使用RandomnextInt如下:

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

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

    那么如何随机化最后5个可以是AZ或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();
    

    如果你需要指定确切的字符长度,我们必须避免0值在前面。

    最终字符串表示必须具有确切的字符长度。

    String GenerateRandomNumber(int charLength) {
            return String.valueOf(charLength < 1 ? 0 : new Random()
                    .nextInt((9 * (int) Math.pow(10, charLength - 1)) - 1)
                    + (int) Math.pow(10, charLength - 1));
        }
    
    链接地址: http://www.djcxy.com/p/17657.html

    上一篇: Java random number with given length

    下一篇: Generating a Random Number between 1 and 10 Java