Duvida no metodo equals (comparação de strings)

7 respostas
tomtom

oi pessoal!

Gostaria de fazer uma condição com varias comparações de strings mais ou menos assim

if (read.equals("+"||"-"||"*"||"/" ))

porem o método equals não aceita o operador “ou” ||.

Alguém pode me dar uma dica como fazer essa condição usando equals ou outro comando.

Obrigado
TOM

7 Respostas

leandronsp

Bom dia tomtom

Então, vc tentou fazer com switch case? não acha melhor?
E em vez de usar o equals, vc apenas verifica a igualdade ==

[]´s

thokk

if(read.equals("/") || read.equals("-")) e assim sucessivamente…
ou fazer igual o leandronsp falou.

Lavieri

vc pode fazer via expressões regulares… tem que pesquisar em regex… eu sempre que preciso dou uma olhada… assim de cabeça não sei te responder como fazer esse seu ||…

a outra forma é

if (read.equals("+") || read.equals("-") || read.equals("*") || read.equals("/"))
pdioniziofilho

ou

if (read.compareTo("/") == 0 || read.compareTo("-") == 0 ) {}
T
// if (read.equals("+"||"-"||"*"||"/" )) -> não compila

// Tradução literal
if ("+".equals(read) || "-".equals(read) || "*".equals(read) || "/".equals(read))
...
// Ou também
if (read != null && read.length() == 1 && (read.charAt(0) == '+' || read.charAt(0) == '-' || read.charAt(0) == '*' || read.charAt(0) == '/'))
// Ou também
if (read != null && read.matches ("[+*/-]"))
// Ou também
if (read != null && read.length() == 1 && ("+-*/".indexOf (read) != -1))
// Ou também
if (read != null && read.length() == 1) {
    switch (read.charAt (0)) {
        case '+': case '-': case '*': case '/': 
            ....
B

Eu usaria o matches, se esses caracteres fossem fazer uma coisa só, ou um switch caso alguma coisa a mais, como botões de uma calculadora.

Marky.Vasconcelos

Quanta dificuldade para algo simples.

String s = "*";
		String pattern = "[+-//*/]";
		if (s.length() == 1 && s.matches(pattern))
			System.out.println("match");

Ta… o thingol já tinha postado…

Aproveitando sobre regex.
como faço uma expressão para fazer um replace no resto?

por exemplo minha string é “[sha1:0][md5:1]”
Se eu quiser mudar o que tem depois de ‘sha1:’ e antes de ‘]’ ?
Para no caso se eu passar o valor 3 ficar assim: “[sha1:3][md5:1]”
?

Criado 7 de abril de 2009
Ultima resposta 7 de abr. de 2009
Respostas 7
Participantes 8