Como eu faço pra usar operadores lógicos com Strings?
Por exemplo:
if (Nome.equals(“Manuel”)||(“Joao”))
if (Nome.equals(“Manuel”)or(“Joao”))
Como eu uso os operadores (AND, OR) corretamente?
Valeu pela dica…
if(nome.equals("Manuel") || nome.equals("Joao"))
Valeu pela dica Rafael.
[quote=gigandre]Como eu faço pra usar operadores lógicos com Strings?
Por exemplo:
if (Nome.equals(“Manuel”)||(“Joao”))
if (Nome.equals(“Manuel”)or(“Joao”))
Como eu uso os operadores (AND, OR) corretamente?
Valeu pela dica…
[/quote]
Mesmo sendo um exemplo estão errado até na representação, pois precisar ser
if(Nome.equals("Manuel") || Nome.equals("João"))
Por favor, se tiver errado corrijam.
Estão errados mesmo, eu usei esses exemplos pra entenderem, oque eu queria, já que eu não sabia fazer isso em java…
existem várias maneiras assim como muitas coisas na vida, uma das maneiras é:
String resposta = "Yeah";
if ( resposta.compareToIgnoreCase( "YEAH" ) == 0 ) {
System.out.println("OKAY");
}
else {
System.out.println("whatever");
}
A saída deve ser:
OKAY
{}´s
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html para maiores informações :mrgreen:
E uma diquinha é fazer a comparação assim: “joao”.equals(nome), pra evitar NPEs indesejados.
E de que forma “joao”.equals(nome) não geraria um NPE e nome.equals(“joao”) geraria?
No primeiro jeito você SEMPRE vai chamar uma ação - método equals() - de um objeto que existe.
Enquanto que na segunda você não pode garantir isso, pq a variável nome pode não referenciar nenhum objeto, e quando isso acontece: PÉÉÉÉÉÉ… NullPointerException e os estagiários ficam loucos. :mrgreen:
Faça o teste:
[code]String foo = null;
/* isso vai dá false, já que o objeto “bar” é diferente de null…
(de acordo com a implementação de equals para string)
*/
System.out.println(“bar”.equals(null));
/* Isso vai lançar NPE. pois foo não é objeto algum…
Como pedir para que um vazio no universo execute uma ação?
*/
System.out.println(foo.equals(“bar”));[/code]
Hun, grato.
Nunca tinha notado isso.
Mas se bem que “string”.equals(obj) fica uma notação um tanto estranha(ao menos para mim), deve ser questão de costume só.
Bom, uso isso há um tempo pra evitar os NPEs… mas aínda parece estranho para mim. :mrgreen:
-Sami