0x56794E 0x56794E - 1 year ago 56
Java Question

Why does this code using random strings print "hello world"?

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

sb.append((char)('`' + k));
}

return sb.toString();
}

Answer Source

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.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download