[RESOLVIDO]String e diferente string

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

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

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

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

Só lembrando que o Java é Case sensitive.

portanto a é diferente de A, caso necessario use

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

Olha so, tenho o seguinte codigo.

[code]public ArrayList 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;
    
	
}[/code]

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 ?

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.

Era isso mesmo, obrigado pela ajuda