Cómo convertir el objeto String
al objeto Boolean
?Cómo convertir un objeto String a Boolean Object?
Respuesta
Try (dependiendo de qué tipo de resultado que desea):
Boolean boolean1 = Boolean.valueOf("true");
boolean boolean2 = Boolean.parseBoolean("true");
Ventaja:
- de Boole: esto no crea nuevas instancias de Boole, por lo que el rendimiento es mejor (y menos basura- colección). Reutiliza las dos instancias de
Boolean.TRUE
oBoolean.FALSE
. - booleano: no se necesita ninguna instancia, utiliza el tipo primitivo.
La documentación oficial está en el Javadoc.
ACTUALIZADO:
Autoboxing también podrían utilizarse, pero tiene un costo de rendimiento.
Sugiero usarlo solo cuando tenga que lanzarse, no cuando el lanzamiento sea evitable.
no asignaría Boolean.valueOf a boolaen2 ¿se auto-unboxed de todos modos? No estoy viendo la diferencia para analizar aquí Boolean. –
El mayor problema es que Boolean no se extrañará cuando vea algo que no debería aceptar. Volverá verdadero para todo lo que ve como "verdadero" y devolverá falso para * todo lo demás *. Si intentas hacer coincidir una cadena con un valor booleano apropiado, tendrás que agregar lógica extra para atrapar casos ilegales manualmente. –
¿qué ocurre si utilizo 'boolean boolean2 = Boolean.valueOf (" true ");' – vipin8169
Boolean b = Boolean.valueOf(string);
El valor de b
es cierto si la cadena no es un nulo e igual a true
(caso ignorando).
Usted tiene que tener cuidado al usar Boolean.valueOf (cadena) oBoolean.parseBoolean (cadena). La razón de esto es que los métodos siempre devolverán false si el String no es igual a "verdadero" (el caso se ignora).
Por ejemplo:
Boolean.valueOf("YES") -> false
Debido a que el comportamiento recomendaría añadir algún mecanismo para asegurar que la cadena que debe ser traducido a un booleano sigue un formato especificado.
Por ejemplo:
if (string.equalsIgnoreCase("true") || string.equalsIgnoreCase("false")) {
Boolean.valueOf(string)
// do something
} else {
// throw some exception
}
Este es el mejor ejemplo que he visto y lo que debería haberse implementado en el tipo booleano para empezar. Lanzar una excepción para un valor booleano no válido es importante para muchas aplicaciones. –
No, eso no es totalmente cierto. aquí está la implementación subyacente de parseBoolean public static boolean parseBoolean (String s) { return ((s! = Null) && s.equalsIgnoreCase ("true")); } – electricalbah
Junto a la excelente respuesta de la demandante, también podemos hacer algo más flexible:
boolean b = string.equalsIgnoreCase("true") || string.equalsIgnoreCase("t") ||
string.equalsIgnoreCase("yes") || string.equalsIgnoreCase("y") ||
string.equalsIgnoreCase("sure") || string.equalsIgnoreCase("aye") ||
string.equalsIgnoreCase("oui") || string.equalsIgnoreCase("vrai");
(inspirado por la respuesta de zlajo ... :-))
boolean b = string.equalsIgnoreCase("true");
Visita http://msdn.microsoft.com/en-us/library/system.boolean.parse.aspx
Esto le dará una idea de qué hacer.
Esto es lo que recibo de la Java documentation:
Información sobre métodos
parseBoolean
public static boolean parseBoolean(String s)
analiza el argumento de cadena como un valor lógico. El booleano devuelto representa el valor verdadero si el argumento de cadena no es
null
y es igual, ignorando el caso, a la cadena "true
".Parámetros:
s
- la cadena que contiene la representación booleana a ser analizadaDevuelve: el booleano representado por el argumento de cadena
desde: 1,5
Aunque el texto de la pregunta no es explícito, esta es una pregunta sobre Java. Al menos está etiquetado de esa manera. Esta respuesta puede confundir a las personas. –
Esto es cómo lo hice:
"1##true".contains(string)
Para mi caso es en su mayoría ya sea 1 o verdadero. Yo uso hashes como divisores.
puede establecer directamente un valor equivalente booleano para cualquier cadena por clase de sistema y acceder a ella en cualquier lugar ..
System.setProperty("n","false");
System.setProperty("y","true");
System.setProperty("yes","true");
System.setProperty("no","false");
System.out.println(Boolean.getBoolean("n")); //false
System.out.println(Boolean.getBoolean("y")); //true
System.out.println(Boolean.getBoolean("no")); //false
System.out.println(Boolean.getBoolean("yes")); //true
para obtener el valor booleano de una cadena, intente esto:
public boolean toBoolean(String s) {
try {
return Boolean.parseBoolean(s); // Successfully converted String to boolean
} catch(Exception e) {
return null; // There was some error, so return null.
}
}
Si hay un error, devolverá nulo. Ejemplo:
toBoolean("true"); // Returns true
toBoolean("tr.u;e"); // Returns null
¿Has probado esto? :) 'parseBoolean (String s)' no arroja una excepción, según el Javadoc. – rapt
public static boolean stringToBool(String s) {
s = s.toLowerCase();
Set<String> trueSet = new HashSet<String>(Arrays.asList("1", "true", "yes"));
Set<String> falseSet = new HashSet<String>(Arrays.asList("0", "false", "no"));
if (trueSet.contains(s))
return true;
if (falseSet.contains(s))
return false;
throw new IllegalArgumentException(s + " is not a boolean.");
}
Mi manera de convertir la cadena a Boole.
String[] values= new String[]{"y","Y","n","N","Yes","YES","yes","no","No","NO","true","false","True","False","TRUE","FALSE",null};
for(String booleanStr : values){
System.out.println("Str ="+ booleanStr +": boolean =" +BooleanUtils.toBoolean(booleanStr));
}
Resultado:
Str =N: boolean =false
Str =Yes: boolean =true
Str =YES: boolean =true
Str =yes: boolean =true
Str =no: boolean =false
Str =No: boolean =false
Str =NO: boolean =false
Str =true: boolean =true
Str =false: boolean =false
Str =True: boolean =true
Str =False: boolean =false
Str =TRUE: boolean =true
Str =FALSE: boolean =false
Str =null: boolean =false
¿Qué es BooleanUtils? –
org.apache.commons.lang3.BooleanUtils es de Apache commons Lang API. – Dhana
por qué no utilizar una expresión regular?
public static boolean toBoolean(String target)
{
if(target == null) return false;
return target.matches("(?i:^(1|true|yes|oui|vrai|y)$)");
}
Bueno, como ya en enero de 2018, de la mejor manera para ello es utilizar Apache de BooleanUtils.toBoolean
.
Esto convertirá cualquier booleano como cadena a booleano, p. S, sí, verdadero, N, no, falso, etc.
¡Muy práctico!
- 1. Cómo convertir Object a boolean?
- 2. Cadena de objeto a Boolean
- 3. object to string array
- 4. Cómo convertir Dictionary <string, object> a Dictionary <string, string> en C#
- 5. convertir java.util.Map [String, Object] en scala.collection.immutable.Map [String, Any]
- 6. C++ std :: string to boolean
- 7. public boolean equals (Object other)
- 8. ¿Cómo puedo convertir un DataTable a un IEnumerable <Dictionary <string, object >>?
- 9. Java: ¿Cómo convertir un objeto File a un objeto String en java?
- 10. Cómo convertir String a DOM ¿Objeto de documento en Java?
- 11. Cómo convertir char * a un sistema :: string^
- 12. Cómo convertir org.jdom.Document a String
- 13. ¿Cómo comparo string y boolean en Javascript?
- 14. Cómo convertir Guid [] a String?
- 15. cómo convertir NSinteger a String
- 16. Convertir DateTime a String PHP
- 17. cómo emitir dinámicamente un objeto de tipo string a un objeto de tipo T
- 18. Casting vs Convertir un objeto a String, cuando objeto realmente es una cadena
- 19. Convertir bytes ASCII [] a String
- 20. ¿Cómo convertir Object a su tipo real?
- 21. Convertir System.Array a string []
- 22. ¿Cómo se puede convertir objeto de (object sender, ListViewItemEventArgs e)
- 23. Cómo convertir el objeto [] a la lista <string> en una línea de C# 3.0?
- 24. Convertir la lista <boolean> a la Cadena
- 25. Cómo convertir un string a double con un cultureinfo adecuado
- 26. Convertir IEnumerable <T> a string []
- 27. Monotouch: convertir un objeto a NSObject
- 28. convertir int a std :: string
- 29. Quiero invocar el método Object hashCode a través del objeto String. ¿Cómo hacerlo?
- 30. Por qué java.util.Properties implementa Map <Object, Object> y no Map <String, String>
¿Cuál es el valor de la cadena? –
¿Cuál es su expectativa de cómo una cadena se debe convertir a booleana? –
myvartypeboolean = !! valuetoconvert –