1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Java] Comparar strings

Discussão em 'Programação' iniciada por sky312, 3 de Janeiro de 2009. (Respostas: 8; Visualizações: 3411)

  1. sky312

    sky312 Power Member

    Boas eu tou a tentar comparar duas strings so que da o mesmo resultado são diferentes, qual é o meu erro?

    Código:
     
    public class Exercicio15 {
     
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    String a, b;
     
    System.out.println("Insira a 1º palavra:");
    a=Keyboard.readString();
    System.out.println("Insira a 2º palavra:");
    b=Keyboard.readString();
     
    if (a==b){
    System.out.println("As palavras são iguais." );
    }
    else {
    System.out.println("As palavras são diferentes.");
    }
     
     
    }
     
    }
    
    desculpem por ñ por isto mais ordenado mas ñ sei como por o codigo numa caixa como esta nos outros posts
     
    Última edição pelo moderador: 3 de Janeiro de 2009
  2. Mike42

    Mike42 Power Member

    As strings em Java não são tipos básicos, por isso não podes comparar directamente com o ==, tens que usar funçoes. A classe String já tem a funçao compareTo definida.

    if(a.compareTo(b))
    ...
    else
    ...
     
  3. yosephfava

    yosephfava Power Member

    Boas, explora a API do Java..

    Aquilo que pretendes encontra-se neste link, nomeadamente, a função compareTo(String anotherString).

    Ou seja:

    Código:
    if (a.compareTo(b)==0){
    System.out.println("As palavras são iguais." );
    }
    else {
    System.out.println("As palavras são diferentes.");
    }
     
  4. arkannis

    arkannis Power Member

    Em situações em que apenas se pretende verificar a igualdade é mais simples e comum usar o equals.
    if(s1.equals(s2))...
     
  5. bmpv666

    bmpv666 Power Member

    if(string_1.equals(string_2))
     
  6. sky312

    sky312 Power Member

    tentei fazer o que disseste mas aparece um erro diz (cannot convert from int to boolean)
     
  7. sky312

    sky312 Power Member

    ja consegui obrigado pela a ajuda a todos :)
     
  8. Baderous

    Baderous Banido

    Isso foi porque usaste o código:
    Código:
    if (s1.compareTo(s2))
    Ora o método compareTo devolve um int, é semelhante ao strcmp() de C. Mas enquanto que no C, podemos usar o valor devolvido pelo strcmp() como parâmetro do if, funcionando como um booleano (que não existem em C), em Java tal não é possível, pois existe mesmo definido o tipo primitivo boolean (em C, só fazendo #include<stdbool.h>).
     
  9. Mike42

    Mike42 Power Member

    Têm razão, é o equals... É o que dá não mexer em nada nas férias xD
     

Partilhar esta Página