Comparação de Strings
Parte da seção Fundamentos do Journey de Java da Coddy. Lição 70 de 73.
Em Java, comparar strings não é tão direto quanto comparar tipos de dados primitivos como inteiros ou caracteres. Você não pode usar o operador == para comparar strings quanto à igualdade porque strings são objetos, e == compararia seus endereços de memória, não seus conteúdos. Em vez disso, você precisa usar métodos específicos fornecidos pela classe String para comparar os caracteres reais dentro das strings.
Aqui estão os métodos principais para comparação de strings:
equals(Object other): Compara a string com outro objeto (geralmente outra string). Retornatruese as strings tiverem os mesmos caracteres na mesma ordem,falsecaso contrário. Este método é sensível a maiúsculas e minúsculas.
equalsIgnoreCase(String other): Similar aoequals, mas ignora maiúsculas e minúsculas. Retornatruese as strings tiverem os mesmos caracteres, independentemente de suas maiúsculas e minúsculas,falsecaso contrário.
compareTo(String other): Compara duas strings lexicograficamente (com base em seus valores Unicode). Retorna 0 se as strings forem iguais, um número negativo se a primeira string for menor que a segunda, e um número positivo se a primeira string for maior que a segunda. Este método é sensível a maiúsculas e minúsculas.
compareToIgnoreCase(String other): Semelhante aocompareTo, mas ignora maiúsculas e minúsculas.
Aqui está um exemplo:
String str1 = "hello";
String str2 = "hello";
String str3 = "HELLO";
String str4 = "world";
boolean eq1 = str1.equals(str2); // verdadeiro
boolean eq2 = str1.equals(str3); // falso
boolean eq3 = str1.equalsIgnoreCase(str3); // verdadeiro
int cmp1 = str1.compareTo(str2); // 0
int cmp2 = str1.compareTo(str4); // valor negativo
int cmp3 = str4.compareTo(str1); // valor positivo
int cmp4 = str1.compareToIgnoreCase(str3); // 0Desafio
FácilCrie um método chamado compareStrings que recebe duas strings como entrada e realiza as seguintes comparações:
- Verifica se as duas strings são iguais usando
equalse imprime o resultado. - Verifica se as duas strings são iguais (ignorando maiúsculas e minúsculas) usando
equalsIgnoreCasee imprime o resultado. - Compara as duas strings usando
compareToe imprime o resultado. - Compara as duas strings (ignorando maiúsculas e minúsculas) usando
compareToIgnoreCasee imprime o resultado.
Exemplo de saída para as strings de entrada HELLO e hello:
HELLO equals hello: false
HELLO equalsIgnoreCase hello: true
HELLO compareTo hello: -32
HELLO compareToIgnoreCase hello: 0Experimente você mesmo
import java.util.Scanner;
public class Main {
public static void compareStrings(String str1, String str2) {
// Escreva seu código aqui
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str1 = scanner.nextLine();
String str2 = scanner.nextLine();
compareStrings(str1, str2);
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores - Parte 1
Operadores aritméticosOperador móduloIncremento/DecrementoPós-incremento/Pós-decrementoAtalhos aritméticosOperadores de comparaçãoComparação de strings7IO Básico
Métodos System.outFormatação da saídaClasse ScannerRevisão - Até 120Revisão - Verdadeiro ou falso10Métodos (Funções)
Declarando MétodosParâmetros de MétodosTipos de RetornoSobrecarga de MétodosRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoMétodos Void13Operações com Strings
Métodos de String - Parte 1Métodos de String - Parte 2Formatação de StringsComparação de Strings5Operadores — Parte 2
Operadores lógicos — Parte 1Operadores lógicos — Parte 2Revisão — Lógica simplesOperadores lógicos — Parte 3Operadores lógicos — Parte 43Variáveis — Parte 2
ConstantesConvenções de nomenclaturaRecapitulação — Inicializar variáveisConversão de tipos — Parte 1Conversão de tipos — Parte 26Tomada de Decisão
Instrução IfIf - ElseInstrução SwitchOperador TernárioRevisão - If ElseIf - Else AninhadoPratique por conta própria: Compilador de Java online