Generate 6 digit random number [duplicate]

I just want to generate 6 digit random number, and the range should be start from 000000 to 999999.

new Random().nextInt(999999) is returning me number but it is not in 6 digit.

5

5 Answers

Its as simple as that, you can use your code and just do one thing extra here

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

this will return your number in string format, so the "0" will be "000000".

Here is the code.

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

If you need a six digit number it has to start at 100000

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

Leading zeros do not have effect, 000000 is the same as 0. You can further simplify it with ThreadLocalRandom if you are on Java 7+:

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

i know it’s very difficult but you can do something like this: create a class for BinaryNumber; create a constructor that generate a char[] of 6 character where every single one is generated with a randomiser from 0 to 1 override the toStrig() method so that it will return the digits char[] as a string if you want to display it. then crate a method toInt() that esaminate the string char by char with a for and turn it in a decimal base number by multiplying current digit to 10 to the pow of i:

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) shall always give 1 or 2. You then multiply it by 10000 to satisfy your requirement and then add a number between [0..9999].

already solved here

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

This is the code in java which generate a 6 digit random code.

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

You Might Also Like