Duvida Comparação String

1 resposta
R

Duvida no comando abaixo…

Sobre a comparação de uma string. Se operador = + passa…Ok
Se puderem me ajudar…

if(operador.compareTo("+")== ???? { resultado=valor1+valor2; System.out.println("Operação = +"); System.out.println("Resultado="+resultado); pout.println(resultado); }

1 Resposta

Mantu

O método compareTo da classe String retorna um int. Se esse int for menor que 0, quer dizer que operador é “menor” que “+”. Se o int for maior que 1, então operador é “maior” que “+”. E, finalmente, se o int for igual a 0, então quer dizer que operador é igual a “+”.
No seu caso, vc poderia utilizar assim:

if(operador.compareTo("+") == 0) {
                 resultado=valor1+valor2;
                 System.out.println("Operação = +");
                 System.out.println("Resultado="+resultado);
                 pout.println(resultado);
             }

Mas no seu caso, você nem precisa utilizar o compareTo! Pode utilizar o equals:

if(operador.equals("+")) {
                 resultado=valor1+valor2;
                 System.out.println("Operação = +");
                 System.out.println("Resultado="+resultado);
                 pout.println(resultado);
             }

Veja como fica mais simples, mais legível! Isto prque o método [/i]equals[i] retorna um boolean, ficando mais prático de utilizá-lo no if.
O intuito do método compareTo vai além de simplesmente verificar se o String que invoca é igual ou não ao String passado por parâmetro. O compareTo serve para você estabelecer uma ordenação entre dois objetos String.
E tem mais: O compareTo não é privilégio só da classe String, aliás, o método compareTo “não pertence” à classe String, e sim a uma interface chamada Comparable. O que acontece é que String “dá um implements” nesta interface, o que a obriga a implementar este método.
Dê uma olhada neste tópico para saber um pouco mais sobre o compareTo:
http://www.guj.com.br/posts/list/45985.java#241201

Criado 23 de novembro de 2006
Ultima resposta 23 de nov. de 2006
Respostas 1
Participantes 2