[RESOLVIDO]String e diferente string

6 respostas
D

Pessoal, nao sei nem como pergunta.

Estou trabalhando com java, flex e bd firebird.

Quando eu faco um comparativos na minha classe java entre strings.

Exemplo…

entra classe java, se eu fize um IF a == a de outra classe java ele satisfaz

Porem, se eu tiver um campo que veio do meu banco firebird, que o campo e uma string =A

eu faco comparativo entra minha string na classe java A com a do banco fala que nao e igual.

Agora, peguei mesmo erro quando eu envio uma stirng A para minha classe java, que fala para retornar joao caso a string recebida da funcao seja A, ela tb nao satisfaz.

Eu sei que ta confuso, e que e dificil fazer a pergunta, se alguem puder ajudar agradeco

helder

6 Respostas

Eric_Yuzo

O operador == compara referências. Para comparar conteúdo deve usar o método equals.

String a = "a"; System.out.println(a.equals("a"));

LPJava

e String no java é uma classe e não um tipo primitivo, nunca esquecer disso. qdo comecei fazia confusão.

Scorsatto

Só lembrando que o Java é Case sensitive.

portanto a é diferente de A, caso necessario use

String a = "A"; System.out.println(a.equalsIgnoreCase("a"));

D
Olha so, tenho o seguinte codigo.
public ArrayList<Cliente> pegarDados3(String a){
    	//Dando nomes mais descritivos às variáveis  
       
    	List <Cliente> clientes = new ArrayList<Cliente>();  
    	if (a=="a"){
            Cliente cliente = new Cliente();      
            cliente.cod=1;  
            cliente.nome="Jose";    
            clientes.add(cliente);  	
    	}
    	
    	else if (a=="b"){
    		  
    		Cliente cliente2 = new Cliente(); //Criando um novo cliente  
            cliente2.cod=2;  
            cliente2.nome="joao";   
            clientes.add(cliente2);
    	}
    	else {
    		Cliente cliente3 = new Cliente(); //Criando um novo cliente  
        cliente3.cod=3;  
        cliente3.nome="campeao";   
        clientes.add(cliente3);
    	}
    	  
        
      
        
        return (ArrayList<Cliente>) clientes;
        
		
    }

Entao, quando o flex me manda a minusculo mesmo nao retorna o jose, e sim o campeao.

Acontece o mesmo quando puxo do banco de dados.

como poderia arrumar isso ?

E

Troque

a == “a”

por

a.equals (“a”)

e

a != “a”

por

! a.equals (“a”)

Você vai ter dúvidas mais tarde, portanto vou já adiantar:

Troque

a > “a”

por

a.compareTo (“a”) > 0

e

a < “a”

por

a.compareTo (“a”) < 0

e

a >= “a”

por

a.compareTo (“a”) >= 0

e

a <= “a”

por

a.compareTo (“a”) <= 0

Isso é um detalhe chato do Java, mas é um dos “menos chatos”. Prepare-se que vem mais coisa chata.

D

Era isso mesmo, obrigado pela ajuda

Criado 1 de dezembro de 2010
Ultima resposta 2 de dez. de 2010
Respostas 6
Participantes 5