Home > DeveloperSection > Forums > Why does this code using random strings print “hello world”?
ezra heywood
ezra heywood

Total Post:145

Posted on    May-06-2015 12:00 AM

 Java Java 

 1 Reply(s)
 654  View(s)
Rate this:
I came across this piece of code, and found it rather interesting. The following print statement would print "hello world". Could anyone explain this?

System.out.println(randomString(-229985452) + " " + randomString(-147909649));
And randomString() looks like this

public static String randomString(int i)
    Random ran = new Random(i);
    StringBuilder sb = new StringBuilder();
    while (true)
        int k = ran.nextInt(27);
        if (k == 0)
        sb.append((char)('`' + k));
    return sb.toString();

Mayank Tripathi
Mayank Tripathi

Total Post:397

Posted on    May-06-2015 12:25 AM

When an instance of java.util.Random is constructed with a specific seed parameter (in this case -229985452 or -147909649), it follows the random number generation algorithm beginning with that seed value.

Every Random constructed with the same seed will generate the same pattern of numbers every time.

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

Follow MindStick