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