Cuando traté de convertir un String Objeto a boolean, el resultado es diferente.Cadena de objeto a Boolean
String strFlag="true";
boolean boolFlag = Boolean.getBoolean(strFlag);
boolFlag
termina teniendo un valor false
.
Cuando traté de convertir un String Objeto a boolean, el resultado es diferente.Cadena de objeto a Boolean
String strFlag="true";
boolean boolFlag = Boolean.getBoolean(strFlag);
boolFlag
termina teniendo un valor false
.
Uso Boolean.valueOf(String string) a archieve su objetivo.
boolean boolFlag = Boolean.valueOf(strFlag);
devuelve un booleano con un valor representado por la cadena especificada. El booleano devuelto representa el valor verdadero si el argumento de cadena no es nulo y es igual, ignorando el caso, a la cadena "verdadero".
Ejemplo: Boolean.valueOf("True")
devuelve true.
Ejemplo: Boolean.valueOf("yes")
devuelve falso.
A partir de java 1.5 también hay Boolean.parseBoolean(String s)
que devuelve el tipo primitivo boolean
en lugar del tipo Boolean
en caja para ahorrar algunos ciclos de CPU en la mayoría de los casos.
si 'strFlag' contiene un valor falso? – Mdhar9e
entonces el 'boolFlag' es falso.Dado que 'boolean' solo puede ser verdadero o falso, basta con verificar uno de ellos, dependiendo de lo que debería ser el" predeterminado ". Para la envoltura 'Boolean' tendrías razón, ya que esa podría convertirse en' null'. – devsnd
O simplemente 'boolFlag booleano = "true" .equalsIgnoreCase (strFlag);' – Jesper
Puede utilizar
boolFlag = "true".equalsIgnoreCase(strFlag);
Si strFlag fuera 'nulo', esto le daría una' NullPointerException'. – devsnd
gracias por la corrección –
Uso Boolean.valueOf
boolean boolFlag = Boolean.valueOf(strFlag);
Este método devuelve un valor booleano con un valor representado por la cadena especificada. El booleano devuelto representa el valor verdadero si el argumento de cadena no es nulo y es igual, ignorando el caso, a la cadena "verdadero".
ok ... intentaré con esto. Parece que funciona. – Mdhar9e
Usar los complementos es una mejor opción que mi solución. 1 – devsnd
si está almacenando en un primitivo, a continuación, analizar es muy, muy ligeramente más rápido (ya que evita unboxing), pero que el tiempo va a quedar eclipsados por el tiempo de análisis de todos modos, así que es un no-tema. – user439407
Boolean.getBoolean
pruebas para ver si la propiedad sistema dado es cierto, que desea Boolean.parseBoolean
puedes soltar un trozo de código. – Mdhar9e
tratar de utilizar Boolean.valueOf(strFlag)
boolean boolFlag = Boolean.parseBoolean(strFlag);
Este método devuelve un valor lógico primitiva tipo. Funciona igual que Boolean.valueOf, sin el costo de unboxing.
Usted puede usar la siguiente
Boolean.getBoolean no hace lo que usted cree. Lee el manual. – Corbin
No estoy seguro, pero tal vez es sensible a mayúsculas y minúsculas? Por cierto, ¿por qué no usas 'Boolean.parseBoolean (string);'? – Leri
@PLB Las conjeturas no son de mucha utilidad, especialmente conjeturas incorrectas como esta. OP debería leer el manual como se lo aconsejó, y usted también. – EJP