Ajuda em comparação de string

5 respostas
felipexavier

Vamos dizer que eu escrevi “felipe”
e eu quero saber se existe “a” na palavra, quero saber como testa letra por letra, tem como isso?

5 Respostas

Renan_Celso

Você pode usar o “contains”. Do jeito que está abaixo.

String palavra = “felipe”;

if(palavra.contains(a){

system.out.println(A palavra contém a);

} else {

system.out.println(A palavra NÃO contém a);

}
felipexavier

esse contains faz essa função? de comparar?

Renan_Celso

Sim, se a o seu atributo String, que no seu caso é “palavra” conter o valor que você deseja, ele retorna true, senão, retorna false.
Simples assim!!! :slight_smile:

Renan_Celso

Para comparação de Strings em Java você usa o “.equals”.
Mas acredito que não seja o seu caso pelo menos pelo que entendi na pergunta inicial!!!

fernandosavio

É isso mesmo que o Renan falou Felipe!
O contains testa se a substring que você passou como parâmetro está contido na String. Retornando verdadeiro caso contenha e falso caso contrário.
Já o equals é comparação mesmo... Parecido com o == que você usa com as variáveis primitivas (int, float, etc...), porém compara dois objetos String.

Por exemplo:

String s = "palavra";
if(s.contains("alav")){
   System.out.println("Retorna true");
}else{
   System.out.println("Retorna false");
}

Retornará true, pois a "palavra" contem "alav"...

Já o equals é mais ou menos assim:
String s1 = "GUJ";
String s2 = "GUJ";
String s3 = "guj";

System.out.println("s1==s2 -> " + s1.equals(s2));
System.out.println("s2==s3 -> " + s2.equals(s3));
System.out.println("s2==s3 * -> " + s2.equalsIgnoreCase(s3));   //ignora MAIUSCULAS e minusculas
O retorno será:
s1==s2 -> true
s2==s3 -> false
s2==s3 * -> true
Você pode querer usar o .compareTo que retorna um número inteiro negativo se o objeto vem antes do parametro (na ordem alfabética), positivo caso o parâmetro seja maior que o objeto e 0 se forem iguais... Exemplo:
String s1 = "a";
String s2 = "A";
String s3 = "B";

System.out.println("s1==s2 -> " + s1.compareTo(s2));
System.out.println("s2==s3 -> " + s2.compareTo(s3));
System.out.println("s1==s2 * -> " + s1.compareToIgnoreCase(s2));   //ignora MAIUSCULAS e minusculas
O retorno será:
s1==s2 -> 32
s2==s3 -> -1
s1==s2 * -> 0

Espero ter ajudado..

Criado 27 de junho de 2011
Ultima resposta 27 de jun. de 2011
Respostas 5
Participantes 3