Quando ho provato a convertire una stringa su booleano, il risultato è diverso.Oggetto stringa a Boolean
String strFlag="true";
boolean boolFlag = Boolean.getBoolean(strFlag);
boolFlag
finisce per avere un valore false
.
Quando ho provato a convertire una stringa su booleano, il risultato è diverso.Oggetto stringa a Boolean
String strFlag="true";
boolean boolFlag = Boolean.getBoolean(strFlag);
boolFlag
finisce per avere un valore false
.
Usa Boolean.valueOf(String string) di raggiungere un 'il tuo obiettivo.
boolean boolFlag = Boolean.valueOf(strFlag);
Restituisce un valore booleano con un valore rappresentato dalla stringa specificata. Il valore restituito booleano rappresenta il valore true se l'argomento stringa non è nullo ed è uguale, ignorando il caso, alla stringa "true".
Esempio: Boolean.valueOf("True")
restituisce true.
Esempio: Boolean.valueOf("yes")
restituisce falso.
Come di Java 1.5 c'è anche Boolean.parseBoolean(String s)
che restituisce il tipo primitivo boolean
invece del tipo scatolato Boolean
di risparmiare alcuni cicli di CPU nella maggior parte dei casi.
se 'strFlag' contiene un valore falso? – Mdhar9e
quindi 'boolFlag' è falso.Dato che 'boolean' può essere solo vero o falso, è sufficiente controllare uno di essi, a seconda di cosa dovrebbe essere il" default ". Per il wrapper 'Boolean' avresti ragione, dal momento che uno potrebbe diventare' null'. – devsnd
O semplicemente 'boolean boolFlag =" true ".equalsIgnoreCase (strFlag);' – Jesper
È possibile utilizzare
boolFlag = "true".equalsIgnoreCase(strFlag);
Se strFlag sarebbe 'null' questo ti darebbe un' NullPointerException'. – devsnd
grazie per la correzione –
Usa Boolean.valueOf
boolean boolFlag = Boolean.valueOf(strFlag);
questo metodo restituisce un valore booleano con un valore rappresentato dalla stringa specificata. Il valore restituito booleano rappresenta il valore true se l'argomento stringa non è nullo ed è uguale, ignorando il caso, alla stringa "true".
ok .. ci proverò. Sembra funzionare. – Mdhar9e
L'utilizzo dei built-in è un'opzione migliore della mia soluzione. +1 – devsnd
se si sta memorizzando in una primitiva, quindi l'analisi è molto, molto leggermente più veloce (in quanto evita l'unboxing), ma quel tempo sarà comunque sminuito dal tempo di analisi, quindi è un non-problema. – user439407
Boolean.getBoolean
test per vedere se la proprietà di sistema dato è vero, si vuole Boolean.parseBoolean
puoi rilasciare un pezzo di codice. – Mdhar9e
tenta di utilizzare Boolean.valueOf(strFlag)
boolean boolFlag = Boolean.parseBoolean(strFlag);
Questo metodo restituisce un valore booleano primitiva genere. Funziona come Boolean.valueOf, senza il costo di unboxing.
È possibile utilizzare il seguente
Boolean.getBoolean non fai quello che pensi lo fa. Leggi il manuale. – Corbin
Non sono sicuro, ma forse è case sensitive? A proposito, perché non usi 'Boolean.parseBoolean (string);'? – Leri
Le puntate di @PLB non sono molto utili, specialmente ipotesi errate come questa. OP dovrebbe leggere il manuale come consigliato, e così dovresti. – EJP