Comparando

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.

usa equalsIgnoreCase

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:

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

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!!

[quote=thundercas]

OBS: Lembre-se da regrinha: Java é Case-Sensitivo!![/quote]

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

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.

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

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!

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

[quote=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![/quote]

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.

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.

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.

[code]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();  
   
   


 }  

} [/code]

Abçs vlw!!! :wink:

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.

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

[code]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();  
      
    
      
      
  
  
  }    

} [/code]

Abçs.