JAVA RANDOM NUMBER WITH GIVEN LENGTH

Goti Bandu

Total Post:119

Points:835
Posted by  Goti Bandu
 1366  View(s)
Ratings:
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;
        i++;
        }

    }

    return val;
}

Thanks in advance! 
  1. AVADHESH PATEL

    Post:604

    Points:4228
    Re: Java random number with given length

    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.


Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!