Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Diferença de Equals para Contains

Estive consultando no javaDoc, mas só para confirmar se é isso mesmo.
O Equals devemos utilizar quando temos um Objetos de Strings e o Contains quando temos uma variável ou um texto?
    String var1 = "Texto complexo";
    String var2 = "Texto complexo";
        System.out.println("String são iguais?"+var2.equals(var1));
        System.out.println("String são iguais?"+var2.contains(var1));
5 respostas

Olá Washington Luiz. Neste caso o equals realiza uma comparação da String completa. Por exemplo:

"Texto complexo".equals("Texto complexo") = True

Já o contains verifica se a String possuí dentro dela o valor da String passada. Por exemplo:

"Texto complexo 123".contains("Texto complexo") = True

Pois a primeira String possuí a string passada. Espero ter ajudado. abs

   String var1 = "Texto complexo";
    String var2 = "Texto ";
        System.out.println("String são iguais?"+var2.equals(var1));
        System.out.println("String contém?"+var1.contains(var2));
\\ equals compara duas expressões
\\contains verifica se uma expressão está contida em outra

Na verdade o equals é utilizado quando desejamos comparar exatamente o objeto (sendo string exatamente seu conteúdo já que este método foi sobrescrito, o contains checa se dentro da do elemento que você está buscando contain a sequencia de caracteres

solução!

Olá Washington,

Não é bem isso. O método equals server para comparar objetos. Comparar um primitivo é fácil certo, um número por exemplo:

int a = 1;
int b = 2;
if (a == b)

Contudo, com objetos não é tão simples. Ao usar o == em objetos, a JVM apenas compara se esses as variáveis de referência deles apontam para o mesmo objeto em memória.

Por isso temos como prática implementar o método equals() herdado de Object em nossas entidades, para dar meios para o Java saber comparar nossos objetos.

Já o método contains() da classe String, serve para verificar se um conteúdo de texto (uma string) existe dentro de outra, como no exemplo:

String a = "um texto de exemplo";
String b = "de exem";
if (a.contains(b))

Esse teste retornará true, porque dentro da String a, existe o conteúdo da String b.

Já um teste de equals para Strings:

String a = "um texto de exemplo";
String b = "de exem";
if (a.equals(b))

Esse teste retornará false, porque a String a não é igual à String b. Repare que o que define que não sejam iguais, é porque a implementação do método equals() da classe String analisa uma string de forma lexicográfica, ou seja, compara caractere por caractere, para que seja igual uma String a outra, todo caractere em uma mesma posição nas duas Strings deve ser o mesmo.

Deu pra clarificar mais a diferença?

Abraços.

Galera, muito Obrigado, Agora ficou muito claro quando usa-los e o que cada um faz!