Jump to content
Jack Sparrow

Comparar duas letras

Recommended Posts

Jack Sparrow

Olá

Estou a começar a aprender Java e queria comparar duas letras introduzidas pelo utilizador, do tipo

System.out.println("O palpite está certo? s/n");

se s então faz 1, senão (n) faz 2.  ;)

Alguém me pode dar uma mãozinha?

Obrigado.

Share this post


Link to post
Share on other sites
softklin

A tua dúvida está em comparar as duas letras, ou também em recebê-las do utilizador?

Na comparação, se utilizares strings, podes usar a função compareTo da string:

http://download.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#compareTo%28java.lang.String%29

Fica algo como:

String resposta;

// ....

if (resposta.compareTo("s") == 0) {
  System.out.println("Resposta afirmativa!");
} else {
  // ele entra aqui caso a resposta seja "n" ou outra coisa qualquer
  System.out.println("Resposta negativa!");
}

Para ler do teclado, podes usar a classe Scanner para manter as coisas simples:

http://beginwithjava.blogspot.com/2008/07/getting-keyboard-input-for-console-apps.html

http://download.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html

NOTA: não te esqueças do respectivo import no topo do ficheiro

import java.util.Scanner;


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
brunoais

String resposta;

// ....

if (resposta.compareTo("s") == 0) {
  System.out.println("Resposta afirmativa!");
} else {
  // ele entra aqui caso a resposta seja "n" ou outra coisa qualquer
  System.out.println("Resposta negativa!");
}

Para esse trabalho é mais rápido (como é 1 letra é pouco mais rápido) usando o equals que o compareTo.

String resposta;

// ....

if (resposta.equals("s")) {
  System.out.println("Resposta afirmativa!");
} else {
  // ele entra aqui caso a resposta seja "n" ou outra coisa qualquer
  System.out.println("Resposta negativa!");
}

Claro que se usasse um caracter em vez de string ainda seria mais eficiente para comparar.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
softklin

Tens razão, o compareTo percorre sempre a palavra toda. Eu escolhi o compareTo, porque na altura me lembrei que que o equals faz a comparação entre objectos, incluindo as referências. No entanto, isso não se aplica para as strings, e é possível usar o equals para o efeito pretendido.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
Jack Sparrow

Obrigado pessoal, acho que fiquei esclarecido, as respostas foram muito boas, obrigado mesmo...

Share this post


Link to post
Share on other sites
Draakar

só acrescentar mais uma coisa, que me parece útil. Quando estás a comparar duas Strings ou chars podes usar o .equalsIgnoreCase() que ignora a forma como os caracteres estão escritos, caso pretendas.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.