String Comparison
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: 0Folha de consulta
Em Java, use métodos específicos para comparar strings, não o operador == que compara endereços de memória:
equals(Object other): Comparação de igualdade sensível a maiúsculas e minúsculasequalsIgnoreCase(String other): Comparação de igualdade insensível a maiúsculas e minúsculascompareTo(String other): Comparação lexicográfica sensível a maiúsculas e minúsculas (retorna 0 se igual, negativo se primeiro < segundo, positivo se primeiro > segundo)compareToIgnoreCase(String other): Comparação lexicográfica insensível a maiúsculas e minúsculas
String str1 = "hello";
String str2 = "HELLO";
boolean eq1 = str1.equals(str2); // false
boolean eq2 = str1.equalsIgnoreCase(str2); // true
int cmp1 = str1.compareTo(str2); // positive value
int cmp2 = str1.compareToIgnoreCase(str2); // 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
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else