Equals e equalsignorecase comparar com ""

7 respostas
Renyo

Senhores, uma pergunta bemmm simples, vendo uma série de códigos pela net, vejo que as pessoas fazem comparações desta forma

if (!variavel.equalsIgnoreCase("")) System.out.println("LA LA LA");

As comparações com vazio, é feito desta forma em toda parte do código.

Poderia ser feito com equals somente não é ? e também seria melhor até, pois não analisaria caso sensitivo.

Obrigado

7 Respostas

M

Como não tem nenhum caractere, poderia sim ser feito com equals:

if (!variavel.equals("")) {
    // faça algo se a string não estiver vazia
}

É algo similar a isso:

if (!variavel.equalsIgnoreCase("7"))  {
    // será que números tem maiúsculas/minuscúlas?
}
Renyo

Ahaha :lol: era algo que eu já estava prevendo.

Interessante o seu segundo exemplo… negócio dos números…

De qualquer forma, brigdado :!:

sergiotaborda

A melhor forma seria :

if ( "".equals(variavel)){

}

se ha garantia de ha a variável não é nula então seria melhor

variavel.length()==0  ou 
variavel.trim().length()==0

a partir do java 6 tem ainda melhor

variavel.isEmpty() ou 
variavel.trim().isEmpty()

O uso ou não de trim depende da certeza que temos que variável não contém apenas espaços vazios " "

M

De fato,

if (!"".equals(variavel)) {
    // o resto do código
}

É mais seguro que o inverso, garantindo que não haverá problemas com variáveis nulas.

Bem observado, sergiotaborda.

Marky.Vasconcelos

Apesar que usar o isEmpty do que comparar com “” é muito mais eficiente, pois não tem um monte de comparações com nulo, class e etc que o equals faz.

B

isEmpty é exatamente um this.length() == 0

Marky.Vasconcelos

Eu não disse que não…

Criado 22 de dezembro de 2008
Ultima resposta 22 de dez. de 2008
Respostas 7
Participantes 5