Acredito eu que seja erro de comparação!

Estou com um problema o código abaixo funciona perfeitamente em C/C++ mas to tentando aprende java e não estou conseguindo compara uma string.
Pelo teste que fiz o erro tá nessa comparação:

if(procuracpf == null)

como fazer para comparar a string com algo vazio, pq minha ideia é ver se o usuario digitou algo, para ajudar vou postar o código inteiro se alguem tiver uma ideia, desde já agradeço!!!

[code]String procuracpf,procuranome;
int cont2,cont1,escolha = 0;
cont1 =cont2 = escolha = 0;

    procuracpf = busca_cpf.getText();
    procuranome = busca_nome.getText();
           
    
    if(procuracpf == null)
        cont1 = 0;
    else
        cont1 = 1;
    
    if(procuranome == null)
        cont2 = 0;
    else
        cont2 = 1;
   
    JOptionPane.showMessageDialog(null, cont1);
    JOptionPane.showMessageDialog(null, cont2);
    
    
    if(cont1 == 0 & cont2 == 1)
        escolha = 0;
    if (cont1 == 1 & cont2 == 0)
        escolha = 1;
    if (cont1 == 1 & cont2 == 1)

     escolha = 2;
 else
     escolha = 3;
 
 //Escolha da opção
 switch(escolha){
         case 0: 
                 JOptionPane.showMessageDialog(null, "Campo CPF vazio nome preenchindo!"); 
                 
                 break;
         case 1:
                 JOptionPane.showMessageDialog(null, "Campo Nome vazio , CPF preenchido");
                  break;
         case 2: 
                  
                 JOptionPane.showMessageDialog(null, "Os Campos estão preenchindo!");
                 break;
         case 3:

                 JOptionPane.showMessageDialog(null, "Nenhum dos campos preenchindo!");
                  busca_cpf.requestFocus();
                  break;
         }[/code]

Em Java, quando você compara usando == você está comparando se as referências dos objetos são iguais, ou seja, se apontam para o mesmo endereço de memória, basicamente. Para comparar o conteúdo dos objetos (no seu caso, das suas Strings) você deve utilizar o método equals() da classe Object (ou seja, todos os objetos que você criar em Java terão esse método).
Para comparar suas Strings, faça:

String a = "blabla";
String b = "bleble";
if(a.equals(b)) { //vai retornar false
   //...
}

Se quiser comparar com uma String vazia, faça

if("".equals(suaString)) { //... }

Caso queira verificar igualdade entre objetos de uma classe que você mesmo criou, não se esqueça de sobrescrever o método equals() na definição dessa sua classe.

é porque em java String é tida como um objeto e se em java vc usar o operador ‘==’ para comparar dois objetos
ele vai estar comparando as posições de memoria daqueles objetos.

um outro geito é usar length(). Exemplo

String s = “”;
if(s.length() == 0) //retorna o tamanho da palavra
System.out.print("String Vazia);

com o “compareToIgnoreCase” é mais global…

String a="xulo";
string b= "hum";

	if(a.compareToIgnoreCase(b)==true){
System.out.println("true");}
else {
System.out.println("fals0");

Caras muito obrigado pela ajuda funcionou mas tem um outro problema que não estou conseguindo achar o erro, o swith e case não esta dando certo o que pode ser??? Segue abaixo o código:

   [code] procuracpf = busca_cpf.getText();   
    procuranome = busca_nome.getText();   
             
       
    if(procuracpf == null)   
        cont1 = 0;   
    else   
        cont1 = 1;   
       
    if(procuranome == null)   
        cont2 = 0;   
    else   
        cont2 = 1;   
    
       
       
    if(cont1 == 0 && cont2 == 1)   
        escolha = 0;   
    if (cont1 == 1 && cont2 == 0)   
        escolha = 1;   
    if (cont1 == 1 && cont2 == 1)   
        escolha = 2;   
   else   
        escolha = 3;   
   
 //Escolha da opção   
 switch(escolha){   
         case 0:   
                 JOptionPane.showMessageDialog(null, "Campo CPF vazio nome preenchindo!");   
                   
                 break;   
         case 1:   
                 JOptionPane.showMessageDialog(null, "Campo Nome vazio , CPF preenchido");   
                  break;   
         case 2:   
                     
                 JOptionPane.showMessageDialog(null, "Os Campos estão preenchindo!");   
                 break;   
         case 3:   
 
                 JOptionPane.showMessageDialog(null, "Nenhum dos campos preenchindo!");   
                     
                  break;   
         }  [/code]

Imprimiu o a variável escolha pra ver se ela tá retornando o que você espera?
Já tentou fazer com o if pra ver se funciona?

Você já ouviu falar em variáveis booleanas?
Mesmo em C++ existe o tipo bool, que assume os valores “true” e “false”.
Evite ao máximo usas variáveis inteiras, em Java (e em C++) para representar condições booleanas (0 = false, 1 = true).
Por acaso está voltando sempre “Os campos estão preenchidos”? É que getText retorna a string vazia ("") em vez de null, quando o campo não está preenchido.
O teste correto seria algo como:

        if ("".equals(procuracpf))     
            cont1 = 0;     
        else     
            cont1 = 1;   

é cara tenta imprimir a variavel pra ver oque ela ta recebendo, e tanta fazer os teus if´s assim:

if(cont1 == 0 && cont2 == 1){
escolha = 0;
}else if (cont1 == 1 && cont2 == 0){
escolha = 1;
}else if (cont1 == 1 && cont2 == 1){
escolha = 2;
}else
escolha = 3;

não sei mas acho que pode ser isso,to com pressa e naum vi direito o problema :smiley:
espero ter ajudado.

Provavelmente thingol maotu né…
Nada como a experiência…