Java: cadena a booleano

CorePress2023-11-30  1

Tengo que leer una cadena de un campo y luego convertirla a booleana.
He probado esto:

ObjectInputStream nm;
nm = new ObjectInputStream(new FileInputStream("buscamines.txt"));
String s = nm.readLine();
Boolean bool = Boolean.valueOf(s);

Pero no funciona, cuando imprimo la cadena s, es correcta pero el valor booleano siempre es falso.

¿Existe alguna otra forma de convertir una cadena a booleana?

  • 1 Escribiste en tu pregunta: cuando imprimo la cadena s, es correcta ¿Quizás s contiene espacios iniciales (o finales)? ¿Quizás contiene caracteres que no se pueden imprimir? Supongo que el valor de s es verdadero. Le sugiero que imprima la longitud de s y vea si es 4. - Abra 6 de junio de 2020 a las 18:01


------------------------

Según la documentación booleana de Java:

valor booleano estático público de (cadena s)
Devuelve un valor booleano con un valor representado por la cadena especificada. El valor booleano devuelto representa un valor verdadero si el argumento de cadena no es nulo y es igual, ignorando mayúsculas y minúsculas, a la cadena "verdadero".

Entonces, significa que:

System.out.print(Boolean.valueOf("true")); // -> true
System.out.print(Boolean.valueOf("TRUE")); // -> true
System.out.print(Boolean.valueOf("tRuE")); // -> true
System.out.print(Boolean.valueOf("false")); // -> false
System.out.print(Boolean.valueOf("anything else")); // -> false
System.out.print(Boolean.valueOf("TRUE ")); // -> false
2
  • ¿Qué valor booleano se obtiene para la cadena "TRUE " (es decir, con un espacio al final)? - Abra 6 de junio de 2020 a las 18:03
  • @Abra System.out.print(Boolean.valueOf("TRUE ")); devolverá falso. -Alessio Cantarella 6 de junio de 2020 a las 18:08
Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare