Home > DeveloperSection > Forums > Java random number with given length
Goti Bandu

Total Post:119

Posted on    May-07-2013 12:43 AM

 MSSQL Server MSSQL Server 

 1 Reply(s)
 1278  View(s)
Rate this:
Hi Expert!

I need to genarate a random number with exactly 6 digits in Java. I know i could loop 6 times over a randomicer but is there a nother way to do this in the standard 

Java SE ?

EDIT: Follow up question: Now that I can generate my 6 digits i got a new problem, the whole ID I'm trying to create is of the syntax 123456-A1B45. So how do i 

randomice the last 5 chars that can be either A-Z or 0-9? I'm thinking of using the char value and randomice a number between 48 - 90 and simply drop any value that 

gets the numbers that represent 58-64. Is this the way to go or is there a better solution?

EDIT 2: This is my final solution. Thanks for all the help guys!

protected String createRandomRegistryId(String handleId)
    // syntax we would like to generate is DIA123456-A1B34      
    String val = "DI";      

    // char (1), random A-Z
    int ranChar = 65 + (new Random()).nextInt(90-65);
    char ch = (char)ranChar;        
    val += ch;      

    // numbers (6), random 0-9
    Random r = new Random();
    int numbers = 100000 + (int)(r.nextFloat() * 899900);
    val += String.valueOf(numbers);

    val += "-";
    // char or numbers (5), random 0-9 A-Z
    for(int i = 0; i<6;){
        int ranAny = 48 + (new Random()).nextInt(90-65);

        if(!(57 < ranAny && ranAny<= 65)){
        char c = (char)ranAny;      
        val += c;


    return val;

Thanks in advance! 


Total Post:604

Posted on    May-07-2013 7:49 AM

Hi Goti Bandhu!

Generate a number in the range from 100000 to 999999.

// pseudo code
int n = 100000 + random_float() * 900000;
I’m pretty sure you have already read the documentation for e.g. Random and can figure out the rest yourself.

Don't want to miss updates? Please click the below button!

Follow MindStick