[DÚVIDA 4] if(variavel.equals("Texto")) {

Olá novamente amigos;

Estou com um Problema : Estou fazendo um programa com importação JOptionPane , e coloquei um valor para uma variável com String e JOptionPane . Até aí tudo bem, mas eu quero que , quando eu colocar o “if(variavel.equals(“Texto”))” exista mais de um “Texto”, um “Texto2”.

Eu tentei usar || mas não dá certo… Como eu poderia arrumar isso ???

Obrigado!!!

Como é que usaste o || ?

Em português:

se a variável for igual a "texto" ou a variável for igual a "texto2"

Em Java:

if (variavel.equals ("Texto") || variavel.equals ("Texto2"))

Qual a sua verdadeira dificuldade? Estou achando que o valor da variável tem alguma sujeirinha que não deixou o teste rodar do jeito que você imaginou, pelo que imagino.

Amigo, para evitar todas as dúvidas colocarei o programa (antes rodava perfeito , até colocar o || para mais opções) :


/**
 *
 * @author Lucas
 */
import javax.swing.JOptionPane;
public class ProjetoJOptionPane {
    public static void main(String[] args) {
        //Começo Tudo
   
        
              String a = JOptionPane.showInputDialog ("Voce e do Brasil???");
              if(a.equals("sim"	    ||	"Sim"	|| 	"SIM")){
               JOptionPane.showMessageDialog(null,"Legal , entao voce fala portugues") ;
             
              }
              else {
                  JOptionPane.showMessageDialog(null,"Entao você nao fala portugues") ;
        //Fim Tudo
              }
    }
}

Amigo, para evitar todas as dúvidas colocarei o programa (antes rodava perfeito , até colocar o || para mais opções) :

[code]

/**
*

  • @author Lucas
    */
    import javax.swing.JOptionPane;
    public class ProjetoJOptionPane {
    public static void main(String[] args) {
    //Começo Tudo

           String a = JOptionPane.showInputDialog ("Voce e do Brasil???");
           if(a.equals("sim"	    ||	"Sim"	|| 	"SIM")){
            JOptionPane.showMessageDialog(null,"Legal , entao voce fala portugues") ;
          
           }
           else {
               JOptionPane.showMessageDialog(null,"Entao você nao fala portugues") ;
     //Fim Tudo
           }
    

    }
    }
    [/code][/quote]

O correto é:


/**
 *
 * @author Lucas
 */
import javax.swing.JOptionPane;
public class ProjetoJOptionPane {
    public static void main(String[] args) {
        //Começo Tudo
   
        
              String a = JOptionPane.showInputDialog ("Voce e do Brasil???");
              if(a.equals("sim")	    ||	a.equals("Sim")	|| 	a.equals("SIM"))){
               JOptionPane.showMessageDialog(null,"Legal , entao voce fala portugues") ;
             
              }
              else {
                  JOptionPane.showMessageDialog(null,"Entao você nao fala portugues") ;
        //Fim Tudo
              }
    }
}

Ainda sim seu if está muito feio :stuck_out_tongue:

Você pode fazer como o entanglement disse, mas como é sempre a mesma palavra, só muda se está em maiúsculo ou não, você pode usar um outro método.

o método equalsIgnoreCase, faz exatamente isso.

EDIT: lembre-se que usando o equalsIgnoreCase sempre que vierem a palavra “sim” independente de qual letra for maiúscula ou minúscula, ele retornara true. Ex: se o usuário digitar “siM” ele irá retornar true.

Amigos , agora quero colocar a resposta não , colocando uma mensagem diferente , porque se alguém colocar “ÇALALALALAL” , por exemplo, falar : “Não entendi a mensagem” ;
(Eu penso que provavelmente colocar um 2º if e apenas 1 else . )

Obrigado !

É só você colocar um if que verifica se ele escreveu não e depois dele um else que mostra o sua mensagem dizendo que você não entendeu o que ele disse.

Olá novamente amigos;

Não sei muito bem usar o comando “return”, mas quero que a pessoa que está usando , e colocar uma resposta sem lógica receba a mensagem e retorne para o “JOptionPane.showInputDialog” .

Obrigado!

[quote=LucasJavaTry]Olá novamente amigos;

Não sei muito bem usar o comando “return”, mas quero que a pessoa que está usando , e colocar uma resposta sem lógica receba a mensagem e retorne para o “JOptionPane.showInputDialog” .

Obrigado![/quote]

Não entendi a sua duvida.

[quote=Sem_Nome][quote=LucasJavaTry]Olá novamente amigos;

Não sei muito bem usar o comando “return”, mas quero que a pessoa que está usando , e colocar uma resposta sem lógica receba a mensagem e retorne para o “JOptionPane.showInputDialog” .

Obrigado![/quote]

Não entendi a sua duvida.[/quote]

Desculpe, Sem_Nome , tenho que avisá-lo de 2 coisas :
1 - Eu não entendi como fazer a parte do if e else que você falou, porque da erro, se eu coloco não, o else compila primeiro que o segundo if .

2 - Fiz “caca”, esqueci de colocar a dúvida ; quero saber como colocar para quem respondeu sem lógica um return para o input , e a mesma coisa para quem respondeu em nulo .

[quote=LucasJavaTry][quote=Sem_Nome][quote=LucasJavaTry]Olá novamente amigos;

Não sei muito bem usar o comando “return”, mas quero que a pessoa que está usando , e colocar uma resposta sem lógica receba a mensagem e retorne para o “JOptionPane.showInputDialog” .

Obrigado![/quote]

Não entendi a sua duvida.[/quote]

Desculpe, Sem_Nome , tenho que avisá-lo de 2 coisas :
1 - Eu não entendi como fazer a parte do if e else que você falou, porque da erro, se eu coloco não, o else compila primeiro que o segundo if .

2 - Fiz “caca”, esqueci de colocar a dúvida ; quero saber como colocar para quem respondeu sem lógica um return para o input , e a mesma coisa para quem respondeu em nulo .[/quote]

Posta o seu codigo (com o erro no if).

[quote=LucasJavaTry]Olá novamente amigos;

Não sei muito bem usar o comando “return”, mas quero que a pessoa que está usando , e colocar uma resposta sem lógica receba a mensagem e retorne para o “JOptionPane.showInputDialog” .

Obrigado![/quote]

Use um laço de repetição. O do-while fará isso com tranquilidade.

usa o startsWith da String:

if(variavel.startsWith("Texto")){
   ..............
}

o startsWith verifica se a string começa com o a string passada como parâmetro.

Gente , agora não entendi nada , só da erro . Meu código é :


/**
 *
 * @author Lucas
 */
import javax.swing.JOptionPane;
public class ProjetoJOptionPane {
    public static void main(String[] args) {
        //Começo Tudo
   
        do {
              String a = JOptionPane.showInputDialog ("Voce e do Brasil???");
	} while (a.equals(null)) || (a.equalsIgnoreCase("nao")) || (a.equalsIgnoreCase("não"))
	if(a.equalsIgnoreCase("sim")) {

               JOptionPane.showMessageDialog(null,"Legal , entao voce fala portugues") ;
             
              }
	else {
}
              if (a.equalsIgnoreCase("não")) || (a.equalsIgnoreCase("nao")) {
                  JOptionPane.showMessageDialog(null,"Entao você nao fala portugues") ;
        else {
	JOptionPane.showMessageDialog(null, "Nao entendi, repita por favor) ;
             //Fim Tudo
              }
    }
}

Obrigado!!!

Que bagunça hein ?
Faça sem o do-while, primeiramente. Depois de sua lógica funcionar, apenas aplique-o. Pense com calma, você quer verificar se o usuário digitou sim ou não, qualquer coisa diferente disso deve ser inválida. Algo como:

    String a = JOptionPane.showInputDialog ("Voce e do Brasil???");  
    if(a.equalsIgnoreCase("sim")) {    
        JOptionPane.showMessageDialog(null,"Legal , entao voce fala portugues") ;               
    }  else if (a.equalsIgnoreCase("não")) {  
        JOptionPane.showMessageDialog(null,"Entao você nao fala portugues") ;  
     } else {  
        JOptionPane.showMessageDialog(null, "Nao entendi, repita por favor") ;  
    }  

Viu ? Agora é pensar em como aplicar o do-while nesse código. E uma dica, não faça a.equals(null). Se é é null mesmo, ele vai dar NullPointerException. null é diferente de “null” (isso é uma String!).

Pode também simplificar um pouco.

String a = JOptionPane.showInputDialog ("English Motherf***r Do You Speak It???");    
		String mensagem = "";
		if(a.equalsIgnoreCase("yes"))       
			mensagem = " So now you know";
		else if (a.equalsIgnoreCase("no"))    
			mensagem = "You read the Bible, Brett?";    
		else     
			mensagem =  "Say 'what' again. I dare you";    
	
	    JOptionPane.showMessageDialog(null,mensagem) ;                

[quote=nel]Que bagunça hein ?
Faça sem o do-while, primeiramente. Depois de sua lógica funcionar, apenas aplique-o. Pense com calma, você quer verificar se o usuário digitou sim ou não, qualquer coisa diferente disso deve ser inválida. Algo como:

    String a = JOptionPane.showInputDialog ("Voce e do Brasil???");  
    if(a.equalsIgnoreCase("sim")) {    
        JOptionPane.showMessageDialog(null,"Legal , entao voce fala portugues") ;               
    }  else if (a.equalsIgnoreCase("não")) {  
        JOptionPane.showMessageDialog(null,"Entao você nao fala portugues") ;  
     } else {  
        JOptionPane.showMessageDialog(null, "Nao entendi, repita por favor") ;  
    }  

Viu ? Agora é pensar em como aplicar o do-while nesse código. E uma dica, não faça a.equals(null). Se é é null mesmo, ele vai dar NullPointerException. null é diferente de “null” (isso é uma String!).
[/quote]

Obrigado nel , agora estou entendendo.

Sim , mas meu exercício pede : "Use o return " …

Obrigado

[quote=LucasJavaTry]Sim , mas meu exercício pede : "Use o return " …

Obrigado[/quote]
E qual o problema de usar o return?