Comparando

14 respostas
M

Opa, to com uma dúvida, eu quero fazer com que após digitado um nome o programa compare e se for igual ao armazenado ele puxará as informações como isso:

nome = "Pedro";
n = JOptionPane.showInputDialog("Digite seu nome");

if (n == Pedro) {
//pega as informações dele.
else {
//informa q n tem nome cadastrado

Bom fiz esse codigo agora desse jeito so pra entender, acho que deu né? Como faço pra comparar o valor digitado com o de uma variavel que eu tenho?

abçs.

14 Respostas

vanzella

usa equalsIgnoreCase

aquilante

Tu pode fazer assim:

String comparador = "teste";
String nome = JOptionPane.showInputDialog(null, "nome?");
        if (nome.compareTo(comparador) == 0){
        	System.out.println("nome é invalido");
        } else {
                    String end = JOptionPane.showInputDialog(null, "endereco?");
                    System.out.println("nome: " + nome);
                    System.out.println("endereco: " + end);
        }

Espero ter ajudado! :lol:

Javabuntu
if (n.equals("Pedro") { }
thundercas

Como disse nosso amigo Javabunto, utilize o método .equals() sempre que quiser comparar Strings… Ele retorna TRUE caso sejam iguais e FALSE caso sejam diferentes.

OBS: Lembre-se da regrinha: Java é Case-Sensitive!!

Kassiane_Pretti

thundercas:

OBS: Lembre-se da regrinha: Java é Case-Sensitivo!!

Por isso recomendo a utilização do equalsIgnoreCase. Isso se vc não quiser que letras maiusculas e acentos sejam contados na comparação

M

Primeiramente vlw pelas respostas…

Então dessa forma funcionou perfeitamente:

import javax.swing.JOptionPane;

class Conta {
	String nome = "Pedro";
	double saldo;
	
}

class Validador extends Conta {
	String n = JOptionPane.showInputDialog ("Nome?");
	
	void validar() {
	if(n.equals(nome)) {
		System.out.println(nome + " " + saldo);
		
		} 
		else {
		System.out.println("Nome inválido");
		}	
	}
}

public class Global {

public static void main (String args[]){
	Conta minhaConta = new Conta();
	
	minhaConta.saldo = 10000.0;
	
	Validador validador = new Validador();
	validador.validar();
	
	


    }
}

Mas o problema é que eu queria fazer assim, só que desta forma ele responde como “Nome inválido”:

import javax.swing.JOptionPane;

class Conta {
	String nome;
	double saldo;
	
}

class Validador extends Conta {
	String n = JOptionPane.showInputDialog ("Nome?");
	
	void validar() {
	if(n.equals(nome)) {
		System.out.println(nome + " " + saldo);
		
		} 
		else {
		System.out.println("Nome inválido");
		}	
	}
}

public class Global {

public static void main (String args[]){
	Conta minhaConta = new Conta();
	
	minhaConta.nome = "Pedro";
	minhaConta.saldo = 10000.0;
	
	Validador validador = new Validador();
	validador.validar();
	
	


    }
}

Abçs.

Kassiane_Pretti

Na classe validador não tem o valor de nome…
Ela só está herdando os atributos da classe conta…

A

Olá,

Tem muita coisa aí no código que eu não achei interessante mas posso estar errado.

Bom, inicialmente você não utilizou setters e getters nos atributos da Classe Conta, para saldo e nome.

Se você quer que funcione do jeito que você tá fazendo aí, é só colocar os atributos da classe conta como estáticos (static).

Mas sugiro que você dê uma re-analisada no seu sistema.

Por exemplo, o método validador poderia receber como parâmetro uma conta e acessar seus atributos através dos getters para então validá-los ou não!

Mantu

http://www.guj.com.br/posts/list/52376.java

M

AdrianoPalm:
Olá,

Tem muita coisa aí no código que eu não achei interessante mas posso estar errado.

Bom, inicialmente você não utilizou setters e getters nos atributos da Classe Conta, para saldo e nome.

Se você quer que funcione do jeito que você tá fazendo aí, é só colocar os atributos da classe conta como estáticos (static).

Mas sugiro que você dê uma re-analisada no seu sistema.

Por exemplo, o método validador poderia receber como parâmetro uma conta e acessar seus atributos através dos getters para então validá-los ou não!

Mas não achei nenhum documento sobre getters e setters que me faça entender quando e pra que usá-los. Se alguém tiver algum link, agradeço.

abçs.

A

Tem um no blog da Caelum que até puxa minha orelha na utilização exagerada dos getters e setters…

http://blog.caelum.com.br/2006/09/14/nao-aprender-oo-getters-e-setters/

Li rapidinho e achei interessante…

Inclusive, por coincidência, ele trata um exemplo de conta bancária.

M

Bom documento mas ainda estou com dúvidas... nesse caso se eu digitar joão imprime os dados do joão ou se digitar pedro imprime os dados do Pedro: mas ele imprime nome inválido.

import javax.swing.JOptionPane;  
   
 class Conta {  
   String nome;  
   double saldo; 

}  
   
 class Validador extends Conta{  
     String n = JOptionPane.showInputDialog ("Nome?");
 
     void validar() {  
     if(n.equalsIgnoreCase(nome)) {  
         System.out.println(nome + " " + saldo);  
           
         }   
         else {  
         System.out.println("Nome inválido");  
         }     
     }  
 }  
   
 public class Global {  
   
 public static void main (String args[]){  
     Conta minhaConta = new Conta();  
       
     minhaConta.nome = "Pedro";  
     minhaConta.saldo = 10000.0;  
     
	 minhaConta.nome = "João";  
	 minhaConta.saldo = 10000.0; 
       
     Validador validador = new Validador();  
     validador.validar();  
       
       
   
   
     }  
 }

Abçs vlw!!!! :wink:

A

Leia o que a KassiPretti escreveu…

Na classe validador você não tem o valor do atributo nome, só a referência ao atributo de uma superclasse(conta).

Se você mandar imprimir o valor de nome, no validador, vai ver que sempre vem null.

M

Bom dia, eu tentei incluir o método na classe Conta e mesmo assim da nome inválido... alguma solução? pls

import javax.swing.JOptionPane;    
      
 class Conta {    
    String nome;    
    double saldo;   
    
	String n = JOptionPane.showInputDialog ("Nome?");  
   
		  void validar() {    
		  if(n.equalsIgnoreCase(nome)) {    
			  System.out.println(nome + " " + saldo);    
              
			  }     
			  else {    
			  System.out.println("Nome inválido");    
			  }       
		  }     
 }    
      
 public class Global {    
      
 public static void main (String args[]){    
      Conta minhaConta = new Conta(); 
       
          
      minhaConta.nome = "Pedro";    
      minhaConta.saldo = 10000.0;    
        
      minhaConta.nome = "João";    
      minhaConta.saldo = 8000.0;   
      
	 minhaConta.validar();  
          
        
          
          
      
      
      }    
 }

Abçs.

Criado 4 de março de 2008
Ultima resposta 6 de mar. de 2008
Respostas 14
Participantes 8