产生6位数的随机数

时间:2018-07-13 10:10:06

标签: java

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

new Random().nextInt(999999)返回我的电话号码,但不是6位数字。

5 个答案:

答案 0 :(得分:7)

就这么简单,您可以使用代码并在此处做一件事

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

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

这是代码。

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);
}

答案 1 :(得分:1)

如果您需要一个六位数的数字,则必须以100000开头

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

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

int i = ThreadLocalRandom.current().nextInt(100000, 900000)

答案 2 :(得分:0)

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

已经解决here

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

答案 3 :(得分:0)

我知道这很困难,但是您可以执行以下操作: 为BinaryNumber创建一个类; 创建一个构造器,该构造器生成6个字符的char [],其中每个单个字符都使用0到1的随机数生成 重写toStrig()方法,以便如果要显示它,将以字符串形式返回数字char []。然后创建一个方法toInt(),使用for将字符char逐个字符化,并通过将当前数字乘以10到i的pow来将其转换为十进制基数:

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;

答案 4 :(得分:0)

这是Java中的代码,会生成一个6位数的随机代码。

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

                        }
     }
}