Como comparar variavel com string java

Uma String é apenas uma sequência de caracteres ordenados em Java . Um ponto a ser observado é que strings são objetos imutáveis ​​em Java, então você não pode modificar strings. É um dos objetos mais comumente usados ​​em Java, e a comparação entre strings é muito usada em Java. Pode haver muitos cenários em que você pode realizar comparações de strings em Java, como classificar uma matriz de strings ou descobrir se uma string de entrada já existe no banco de dados ou não.

Neste guia abrangente, você verá diferentes maneiras de comparar strings em Java de maneira rápida e eficiente. Os métodos de comparação de strings que este artigo irá explorar são-

Usando o operador de igualdade (==) Usando o método String.equals () Usando o método String.equalsIgnoreCase () Usando o método String.compareTo () Usando o método String.compareToIgnoreCase () Usando o método Objects.equals ()

Você verá todos os métodos acima para comparação de strings em detalhes com exemplos práticos para cada um deles. Então, sem mais delongas, é hora de começar.

Curso de desenvolvedor Java Full Stack

O portal para dominar o desenvolvimento da Web Explorar Curso

1. Comparação de strings usando o operador de igualdade (==).

O operador de igualdade em Java é usado para comparar dois ou mais objetos. Se descobrir que ambos os objetos apontam ou se referem à mesma coisa, retorna verdadeiro, senão falso. Observe que o operador de igualdade não compara o valor real em Java, ele apenas compara as referências. Em palavras mais simples, quando você define strings como objetos, eles não se comparam com o valor real, mas apenas com as referências. No entanto, se você definir strings diretamente com aspas duplas, poderá comparar os valores reais armazenados dentro delas. Vamos verificar os dois cenários usando exemplos simples.

Exemplo 1

class StringCompare {

public static void main (String args []) {

String s1=”Olá”;

String s2=”Olá”;

String s3=”Bem-vindo”;

if (s1==s2) {

System.out.println (“Strings s1 e s2 são iguais”);

} else {

System.out.println (“Strings s1 e s2 não são iguais”);

}

if (s1==s3) {

System.out.println (“Strings s1 e s3 são iguais”);

} else {

System.out.println (“Strings s1 e s3 não são iguais”);

}

}

}

No exemplo acima, você viu a criação de 3 variáveis ​​de string usando aspas duplas onde s1 e s2 têm os mesmos valores de string que diferem dos armazenados em s3. O objetivo é verificar se os valores em s1 es2 são iguais ou não, e também se os valores em s1 es3 são iguais ou não. Este exemplo simplesmente usou o operador de igualdade junto com as condições if-else para imprimir os resultados. Vamos verificar o resultado.

Como comparar variavel com string java

Você pode ver que as saídas estão corretas. Isso significa que o operador de igualdade está funcionando bem neste caso. Isso ocorre porque você definiu as strings usando aspas duplas aqui. Vamos criá-los como objetos usando um novo operador no próximo exemplo.

Exemplo 2

class StringCompare {

public static void main (String args []) {

String s1=new String (“Hello”);

String s2=new String (“Hello”);

String s3=new String (“Bem-vindo”);

String s4=s1;

if (s1==s2) {

System.out.println (“Strings s1 e s2 são iguais”);

} else {

System.out.println (“Strings s1 e s2 não são iguais”);

}

if (s1==s3) {

System.out.println (“Strings s1 e s3 são iguais”);

} else {

System.out.println (“Strings s1 e s3 não são iguais”);

}

if (s4==s1) {

Sistema.out.println (“Strings s4 e s1 são iguais”);

} else {

System.out.println (“Strings s4 e s1 não são iguais”);

}

}

}

No acima exa Por exemplo, você pode ter inicializado as strings como objetos. Além disso, você criou um novo objeto string chamado s4, que simplesmente se refere a s1. Vamos ver a saída do código acima.

Como comparar variavel com string java

Aqui, como você pode ver, a saída não é a esperada. Mesmo que as strings s1 e s2 armazenem os mesmos valores, isso mostra que eles não são iguais. Isso ocorre porque, desta vez, o operador de igualdade está tentando comparar objetos e simplesmente verifica se eles se referem ao mesmo local de memória ou não. Esta é a razão pela qual ele mostra s4 e s1 como iguais, porque eles se referem ao mesmo local de memória. Portanto, para comparar strings, é sempre melhor evitar o operador de igualdade e escolher outros métodos que são discutidos abaixo.

2. Comparação de strings usando o método Strings.equals ()

O método Strings.equals () em Java é usado para comparar o conteúdo ou valor armazenado nas strings. Independentemente do fato de as strings serem criadas usando aspas duplas ou como objetos usando um novo operador, ela sempre será comparada com o conteúdo. Além disso, outro ponto a ser observado é que faz distinção entre maiúsculas e minúsculas; portanto, mesmo que as duas strings a serem comparadas sejam diferentes apenas em termos de casos, elas serão tratadas como desiguais. Para tratá-los como iguais, você pode usar o método Strings.equalsIgnoreCase () que este artigo discutirá após este método. Vamos verificar o exemplo abaixo.

Exemplo 3

class StringCompare {

public static void main (String args []) {

String s1=”Olá”;

String s2=”Olá”;

String s3=new String (“Bem-vindo”);

String s4=new String (“Welcome”);

String s5=new String (“Hello”);

if (s1.equals (s2)) {

System.out.println (“Strings s1 e s2 são iguais”);

} else {

System.out.println (“Strings s1 e s2 não são iguais”);

}

if (s1.equals (s5)) {

System.out.println (“Strings s1 e s5 são iguais”);

} else {

System.out.println (“Strings s1 e s5 não são iguais”);

}

if (s3.equals (s4)) {

System.out.println (“Strings s3 e s4 são iguais”);

} else {

System.out.println (“Strings s3 e s4 não são iguais”);

}

if ( s4.equals (s5)) {

System.out.println (“Strings s4 e s5 são iguais”);

} else {

Sistema. out.println (“Strings s4 e s5 não são iguais”);

}

}

}

Aqui, você tem definiu 5 strings, duas delas diretamente usando as aspas duplas e 3 como objetos usando o novo operador. Aqui, você deve tentar comparar todas as combinações. Você comparou strings iguais e definidas com aspas duplas. Continuando, você também comparou strings iguais e uma delas é uma variável entre aspas duplas, enquanto a outra é um objeto definido usando o operador new. Finalmente, ele também tentou comparar dois objetos string com os mesmos valores e valores diferentes. Vamos ver o resultado.

Como comparar variavel com string java

A partir da saída acima, é bastante claro que o método Strings.equals () trata objetos e tipos de dados da mesma maneira e apenas verifica o valor armazenado dentro em vez de tratar os objetos de maneira diferente, como o operador de igualdade.

3. Comparação de strings usando o método String.equalsIgnoreCase ()

Conforme discutido, o método String.equals () trata strings com a única diferença em casos desiguais. Vamos verificar um exemplo disso também.

Exemplo 4

class StringCompare {

public static void main (String args []) {

String s1=”Olá”;

String s2=”olá”;

if (s1.equals (s2)) {

Sistema.out.println (“Strings s1 e s2 são iguais”);

} else {

System.out.println (“Strings s1 e s2 não são iguais”);

}

}

}

Aqui, você definiu duas strings chamadas s1 e s2, e a única diferença entre os valores armazenados dentro deles é que uma string começa com um “h” minúsculo e a outra começa com um “H” maiúsculo. Vamos ver o resultado.

Como comparar variavel com string java

Você pode ver que o método os trata como desiguais. Para substituir esse comportamento, você pode usar outro método chamado Strings.equalsIgnoreCase () que não faz distinção entre maiúsculas e minúsculas e trata strings com apenas diferenças de maiúsculas e minúsculas como iguais. Vamos verificar o mesmo com outro exemplo.

Exemplo 5

class StringCompare {

public static void main (String args []) {

String s1=”Hello”;

String s2=”hello”;

String s3=new String (“heLLo”);

if ( s1.equalsIgnoreCase (s2)) {

System.out.println (“Strings s1 e s2 são iguais”);

} else {

Sistema. out.println (“Strings s1 e s2 não são iguais”);

}

if (s1.equalsIgnoreCase (s3)) {

System.out.println (“Strings s1 e s3 são iguais”);

} else {

System.out.println (“Strings s1 e s3 não são iguais”);

}

}

}

Aqui, você definiu 3 strings com apenas diferenças em seus casos. Vamos ver o resultado do programa acima.

Como comparar variavel com string java

Você pode ver que independentemente de definir as strings diretamente usando aspas duplas ou como objetos com um novo operador e se eles diferem apenas em relação aos casos, os métodos String.equalsIgnoreCase () os tratam como iguais.

Treinamento de certificação Java GRATUITO

Aprenda AZ de Java como nunca antes Inscreva-se agora

4. Comparação de strings usando o método String.compareTo ()

Até agora, você viu como usar o método String.equals (), o método String.equalsIgnoreCase () e o operador de igualdade para comparar strings e seus comportamentos padrão também. Continuando, é hora de ver outro método para obter o mesmo resultado chamado String.compareTo (). Este método compara as strings de maneira diferente. Ele compara as strings lexicograficamente e verifica se cada caractere da primeira string é igual à segunda string ou não. Ele pode lançar 3 tipos de saída-

Se String 1 for igual a String 2, ele lançará 0 Se String 1 for menor que String 2 (lexicograficamente menor), ele lançará um número negativo Se String 1 for maior que String 2 (lexicograficamente maior), ele lançará um número positivo

Além disso, semelhante ao método String.equals (), este método também trata os valores de strings que diferem por casos como desiguais. Vamos verificar um exemplo usando este método.

Exemplo 6

class StringCompare {

public static void main (String args []) {

String s1=”Olá”;

String s2=”Olá”;

String s3=new String (“Bem-vindo”);

String s4=new String (“hello”);

System.out.println (s1.compareTo (s2));

System.out.println (s1.compareTo (s3) );

System.out.println (s1.compareTo (s4));

}

}

No exemplo acima , você definiu 4 strings diferentes, duas como tipos de dados e duas como objetos. Em seguida, você deve tentar verificar como este método trata variáveis ​​de string ou objetos cujos valores diferem pelo caso ou pelo próprio valor. Vamos verificar o resultado.

Como comparar variavel com string java

Você pode ver que as saídas são inteiros. Agora, tente decompô-lo. Primeiro, você comparou s1 com s2, que tem os mesmos valores com o mesmo caso. É por isso que ele retornou 0. Na próxima linha, você comparou s1 com s3, que contém valores totalmente diferentes. Além disso, a string s1 é lexicograficamente menor que s2 porque a palavra “Hello” vem antes da letra “Welcome” no dicionário. Conseqüentemente, ele retornou um número inteiro negativo aleatório denotando que a string s1 é menor que s2. Na última linha, você comparou s1 com s4, cujo conteúdo difere apenas pela caixa da letra inicial. Ele retornou um número inteiro negativo porque trata a letra minúscula “h” como menor do que a letra maiúscula “H”.

5. Comparação de string usando o método String.compareToIgnoreCase ()

O método chamado String.compareTo () discutido acima trata as variáveis ​​de string com valores que diferem por casos como desiguais. Para substituir esse comportamento, você pode usar o método String.compareToIgnoreCase (), que não diferencia maiúsculas de minúsculas. Vamos verificar com outro exemplo simples. O padrão de saída permanece o mesmo.

Se s1 for igual a s2, então ele retorna 0 Se s1 s2, então ele retorna um inteiro positivo

Exemplo 7

class StringCompare {

public static void main (String args []) {

String s1=”hello”;

String s2=”hello”;

String s3=new String (“Welcome”);

String s4=new String (“Hello”);

Sistema. out.println (s1.compareToIgnoreCase (s2));

System.out.println (s1.compareToIgnoreCase (s3));

System.out.println (s1.compareToIgnoreCase ( s4));

}

}

Aqui, em vez de String.compareTo (), você deve usar o método String.compareToIgnoreCase () que ignora os casos. Vamos verificar o resultado da execução.

Como comparar variavel com string java

Aqui, você pode ver que as strings s1 e s2 quando comparadas, retornam 0 porque são iguais. No entanto, quando você comparou s1 que armazena “hello” e s2 que armazena “Hello”, ele ainda retorna 0, o que significa que os trata como iguais. Portanto, você pode dizer que esse método não faz distinção entre maiúsculas e minúsculas.

6. Comparação de strings usando o método Objects.equals ()

Você também pode usar o método Objects.equals () em Java para comparar duas strings inicializadas com uma nova palavra-chave ou diretamente usando aspas duplas. Este método verifica se ambos os objetos de strings são iguais e, em caso afirmativo, retorna true. Ele também retornará verdadeiro se ambas as strings forem nulas. Vamos ver como usar este método.

Exemplo 8

import java.util.Objects;

class StringCompare {

public static void main (String args []) {

String s1=”hello”;

String s2=”hello”;

String s3=new String (“Hello”);

String s4=new String (“hello”);

String s5=”Welcome”;

System.out.println (“É s1 e s2 iguais?”+ Objects.equals (s1, s2));

System.out.println (“S1 e s3 são iguais?”+ Objects.equals (s1, s3)) ;

System.out.println (“É s1 e s4 iguais?”+ Objects.equals (s1, s4));

System.out.println (“É s1 e s5 equal? ​​”+ Objects.equals (s1, s5));

}

}

No exemplo acima, você usou Objects.equals () método para comparar strings definidas usando aspas duplas, usando um novo operador e diferindo completamente ou apenas com casos. Vamos verificar o resultado.

Como comparar variavel com string java

Você pode ver que o método retorna a saída esperada e também trata valores de strings com casos diferentes como desiguais.

Obtenha uma base sólida em Java, a linguagem de programação mais comumente usada em software desenvolvimento com o Curso de treinamento de certificação Java .

Conclusão

Neste guia, você examinou os diferentes métodos que podem ser usados ​​para comparar strings em Java. Você viu as seis maneiras diferentes e como cada uma serve a seu propósito. No entanto, os métodos Objects.equals () e String.equals () funcionam como versáteis e você sempre pode usá-los para obter o melhor de seu programa Java.

Se você está procurando mais sua carreira como desenvolvedor Java especialista, programa Full Stack Java Developer Master’s da Simplilearn é uma forma ideal de começar. Projetado e entregue por meio do modelo bootcamp altamente eficaz e em parceria com HIRIST e HackerEarth, este programa oferece treinamento pronto para o trabalho em mais de 30 ferramentas e habilidades exigidas, e vamos aperfeiçoá-los enquanto aprendemos com mais de 20 lições finais e 6 fases-end, e 4 projetos de capstone alinhados à indústria que você pode usar para mostrar sua experiência em Java e prontidão para o trabalho para empregadores atuais ou em potencial.

Tem alguma pergunta para nós? Deixe-os na seção de comentários deste artigo. Nossos especialistas entrarão em contato com você da mesma forma, no mínimo!

Bom aprendizado!