[RESOLVIDO]Duvida sobre comparação de String

Pessoal, alguém aqui já teve um problema parecido… tipo…
quando usa .equals(""); durante a execução, a aplicação gera um erro… e você deve
alterar essa comparação pra == null ?
alguém sabe me dizer por que isso acontece?

[quote=wilsontads]Pessoal, alguém aqui já teve um problema parecido… tipo…
quando usa .equals(""); durante a execução, a aplicação gera um erro… e você deve
alterar essa comparação pra == null ?
alguém sabe me dizer por que isso acontece?[/quote]

Sim, quando a string que acessa o método equals é nula, com certeza gera errro :slight_smile:
Antes do equals, faça algo assim:

if(null != suaString) {
   suaString.equals("outraString");
}

Abraços amigo!

Cola a descrição do erro para nós!

E, não, não se deve trocar o “equals” por “== null”, olhe o seguinte exemplo

[code]String s = new String("");

if(s.equals("")){
//retornaria true;
}
if(s == null){
//retornaria false;
}[/code]

Por isso muita gente faz:

"".equals(string);

No lugar de

string.equals("");

Aliás, no java 6, já existe o método isEmpty():

string.isEmpty()

Note que uma String vazia é diferente de não ter string nenhuma (null). O null indica que nenhuma string nunca foi fornecida. O vazio indica que tem uma string lá, mas não há texto nenhum dentro dela.

Poisé… durante a etapa de implementação eu estava fazendo um if(getNome.equals("")).
enquanto eu fazia os testes tava tudo ok… só que, depois que conclui e fui fazer a distribuição da aplicação…
tava me retornando uma mensagem de NullPointerException… foi só eu trocar o .equals por if (getnome == null),
que a exceção saiu ;S

[quote=wilsontads]Poisé… durante a etapa de implementação eu estava fazendo um if(getNome.equals("")).
enquanto eu fazia os testes tava tudo ok… só que, depois que conclui e fui fazer a distribuição da aplicação…
tava me retornando uma mensagem de NullPointerException… foi só eu trocar o .equals por if (getnome == null),
que a exceção saiu ;S[/quote]

Exatamente.
Por isso o amigo entendeu errado quando eu disse do “== null”. Não se trata de substituir o equals da String por ==. Todos sabemos, ou devemos saber, que uma String se compara utilizando-se o equals. Acontece, que como você comentou que havia erro, foi fácil deduzir que estava tendo um NullPointerException e que isso se resolveria da forma como comentei.

Fique atento ao que o Viny disse acima.
Eu costuma usar comparação da seguinte forma:

if(null != minhaString && !minhaString.trim().isEmpty()) {
   // Não possui referência nula e não é vazia
  // trim() remove espaços em branco na frente e atrás de uma String, portanto, se houver uma "    " assim, ele considera ela vazia.
  // Faz sua lógica

Certo?
Abraços.

Eu acredito que esse problema possa ser solucionado também, se no momento em que eu crio a variavel,
eu setar ela com uma string vazia… acontece que eu criei essa variavel na minha aplicação apenas da seguinte forma…
String nome;
penso que se criar ela String nome="";
eu possa fazer a comparação tranquilo, com o .equals("");

[quote=wilsontads]Eu acredito que esse problema possa ser solucionado também, se no momento em que eu crio a variavel,
eu setar ela com uma string vazia… acontece que eu criei essa variavel na minha aplicação apenas da seguinte forma…
String nome;
penso que se criar ela String nome="";
eu possa fazer a comparação tranquilo, com o .equals("");[/quote]

Sem dúvidas algumas.
Mas como está utilizando o JDK 1.6 recomendo o uso do método isEmpty().

Abraços.