Operadores com Strings

10 respostas
G
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

10 Respostas

R
if(nome.equals("Manuel") || nome.equals("Joao"))
G

Valeu pela dica Rafael.

F
<blockquote><div class="quote-author">gigandre:</div>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…

</blockquote>

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.

G

Estão errados mesmo, eu usei esses exemplos pra entenderem, oque eu queria, já que eu não sabia fazer isso em java…

J

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 :wink:

Z

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.

R

E de que forma “joao”.equals(nome) não geraria um NPE e nome.equals(“joao”) geraria?

Z

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:
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"));
R

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ó.

S

Bom, uso isso há um tempo pra evitar os NPEs… mas aínda parece estranho para mim. :mrgreen:

-Sami

Criado 4 de julho de 2005
Ultima resposta 5 de jul. de 2005
Respostas 10
Participantes 6