String pra boolean: fiquei louco?

12 respostas
L

oi galera.
depois de um bom tempo debugando e tentando entender o problema, percebo o fato:

considerarPalavrasCompostas = Boolean.parseBoolean(argu[5]); System.out.println(considerarPalavrasCompostas); System.out.println(argu[5]);
e no prompt:
false
1

achei que isso era obvio como funcionava, nem fui pesquisar… aparentemente me enganei. ou tem alguma coisa que eu devia saber e não sei?
abraços.

12 Respostas

RobsonCassol

Java não é como C ela não considera 1 e 0 como true e false.

T

javadoc de Boolean.parseBoolean

Ou seja, “1” não é “True” nem “true”, portanto parseBoolean retorna false. OK?

L

Java não é como C ela não considera 1 e 0 como true e false.
é… percebi… =/
mas não é só C que faz isso né… toda uma algebra é baseada nisso…

agora ficou outra dúvida, se eu fizer

int lala = 1; if (lala)ele também não vai entrar no if?

T

Eu normalmente tenho meu próprio “parseBoolean”; não uso o que vem pronto com o Java. Eu faria assim:

class Util {
    public static boolean parseBoolean (String b) {
        if (b.equalsIgnoreCase ("y") || b.equalsIgnoreCase ("yes") || b.equalsIgnoreCase ("t") || b.equalsIgnoreCase ("true")
           || b.equalsIgnoreCase ("s") || b.equalsIgnoreCase ("sim") || b.equalsIgnoreCase ("v") || b.equalsIgnoreCase ("verdadeiro") {
            return true;
        }
        try {
            long n = Long.parseLong (b); 
            return n != 0;
        } catch (NumberFormatException ex) {
            return false;
        }
        return false;
    }
}
T

luisera:
Java não é como C ela não considera 1 e 0 como true e false.
é… percebi… =/
mas não é só C que faz isso né… toda uma algebra é baseada nisso…

agora ficou outra dúvida, se eu fizer

int lala = 1; if (lala)ele também não vai entrar no if?

Não porque nem compila.

RobsonCassol

Isso não vai nem compilar. chato né.

David

luisera:
agora ficou outra dúvida, se eu fizer

int lala = 1; if (lala)ele também não vai entrar no if?


Isso não vai nem compilar…

L

heheh 3 respostas, acho que entendi ^^
é, foi só uma ideia hipotética, quem vem do C como eu está costumado a programar assim… =)
bom, vou dar um jeito aqui, obrigado

K

já pensou que inves de:

int lala = 1; if (lala)

poderia ser:

boolean lala=true; if(lala)

acho q assim funcionaria melhor :wink:

L

eu sei né, foi só uma dúvida… =)

K

AHUauhHUAUHA
blz =p

Marky.Vasconcelos

Ou então…

int lala = 1;
if(lala == 1)

dai voce pode usar seus 0s e 1s xD

Criado 9 de março de 2009
Ultima resposta 10 de mar. de 2009
Respostas 12
Participantes 6