¿Por qué el código que genera cadenas aleatorias siempre imprime "hello world"?
¡Hola a todos! Soy un desarrollador Java principiante y me encontré con un comportamiento muy extraño. Escribí un programa simple que genera una cadena aleatoria y verifica si es igual a "hello world". Si es igual, imprime un mensaje. Pero el programa siempre imprime "hello world", aunque esperaba que fuera un caso raro.
Aquí está el código:
```java
import java.util.Random;
public class StrangeHelloWorld {
public static void main(String[] args) {
Random random = new Random();
String target = "hello world";
while (true) {
String randomString = generateRandomString(random, target.length());
if (randomString.equals(target)) {
System.out.println("hello world");
break;
}
}
}
static String generateRandomString(Random random, int length) {
StringBuilder sb = new StringBuilder(length);
for (int i = 0; i < length; i++) {
char c = (char) (ran