[RESOLVIDO] Problema no IF após aplicar o String.trim()

4 respostas
A

Pessoal,

Estou quebrando a cabeça prá resolver um problema que aparenta ser simples.

Vejam o código abaixo:

String texto = "123          ";
      System.out.println("ANTES:" + texto + "*");
      texto = texto.trim();
      System.out.println("DEPOIS:" + texto + "*");
      
      if (texto == "123")
         System.out.println("Achou!");
      else
         System.out.println("NÃO Achou!");

Se vocês perceberam, mesmo eu aplicando o trim() ele não acha n o IF …

Isto está acontencendo também como valores que estou buscando no banco de dados …

Como vocês podem ver, após aplicar o trim() eu dei um print da variável e ela foi ajustada! Mas não sei porque o IF não considera …

4 Respostas

Luiz_Gustavo

tente isso:

if (texto.equals("123"))

[]'s

leonardom

Você não pode comparar Strings usando o operador ==. Para comprar String , utilize o metodo equals()

if (texto.equals(123)) {

. . .

}
edercolin

o “==” nao funciona no if porque String nao eh um tipo primitivo, e sim uma classe. O operador “==” retorna true se as duas classes verificadas apontam para o mesmo espaço de memoria…

Por exemplo

String s1 = new String(teste);

String s2 = new String(teste);

if(s1==s2)

System.out.println(nesse if o programa nao entra);
s2=s1;

if(s1==s2)

System.out.println(" e nesse o programa entra!!!");

espero ter ajudado.
Eder

A

Obrigado a todos.

Consegui resolver utilizando o “equals”.

Criado 31 de julho de 2006
Ultima resposta 31 de jul. de 2006
Respostas 4
Participantes 4