关于java:生成6位数的随机数

Generate 6 digit random number

本问题已经有最佳答案,请猛点这里访问。

我只想生成6位数的随机数,范围应该从000000到999999开始。

new Random().nextInt(999999)正在返回我的号码,但它不是6位数。


就这么简单,你可以使用你的代码,只需在这里做一件事

1
String.format("%06d", number);

这将以字符串格式返回您的号码,因此"0"将为"000000"。

这是代码。

1
2
3
4
5
6
7
8
9
public static String getRandomNumberString() {
    // It will generate 6 digit random Number.
    // from 0 to 999999
    Random rnd = new Random();
    int number = rnd.nextInt(999999);

    // this will convert any number sequence into 6 character.
    return String.format("%06d", number);
}


如果您需要一个六位数字,则必须从100000开始

1
int i = new Random().nextInt(900000) + 100000;

前导零没有效果,0000000相同。如果您使用的是Java 7+,则可以使用ThreadLocalRandom进一步简化它:

1
int i = ThreadLocalRandom.current().nextInt(100000, 1000000)


这是java中生成6位随机码的代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.util.*;
public class HelloWorld{

     public static void main(String []args)
     {

        Random r=new Random();
                        HashSet<Integer> set= new HashSet<Integer>();
                        while(set.size()<1)
                        {
                            int ran=r.nextInt(99)+100000;
                            set.add(ran);
                        }
                        int len = 6;
                        String random=String.valueOf(len);
                        for(int  random1:set)
                        {
                            System.out.println(random1);
                            random=Integer.toString(random1);

                        }
     }
}

我知道这很困难,但你可以这样做:
为BinaryNumber创建一个类;
创建一个构造函数,生成一个6个字符的char [],其中每个单元都使用0到1的随机数生成
覆盖toStrig()方法,以便它可以将数字char []作为字符串返回,如果要显示它。然后创建一个方法toInt(),通过带有for的char对字符串char进行esamin,并通过将当前数字乘以10加到i的pow来将其转换为十进制基数:

1
2
3
4
5
6
7
8
9
char[] digits = {1’ , ‘0’ , ‘1’ , ‘1’ , ‘0’ , ‘1};
//random

int result = 0;
for( int i = 0; i < digits.length; i++) {
    result += Integer.parseInt(digits[i]) * Math.pow(10, i);
}

return result;

1 + nextInt(2)应始终给出1或2.然后将其乘以10000以满足您的要求,然后在[0..9999]之间添加一个数字。

已经在这里解决了

1
2
3
4
5
public int gen()
{
    Random r = new Random( System.currentTimeMillis() );
    return ((1 + r.nextInt(2)) * 10000 + r.nextInt(10000));
}