Em Java, a comparação de strings pode ser feita usando os métodos compareTo e equals. Vamos ver como esses métodos funcionam:
Método compareTo:
O método compareTo da classe String compara duas strings lexicograficamente (ou seja, em ordem alfabética). Ele retorna um valor negativo se a string atual precede a string passada como argumento, um valor positivo se a string atual segue a string passada e zero se as strings são iguais.
String str1 = "apple";
String str2 = "banana";
int resultado = str1.compareTo(str2);
if (resultado < 0) {
System.out.println("str1 vem antes de str2");
} else if (resultado > 0) {
System.out.println("str1 vem depois de str2");
} else {
System.out.println("str1 e str2 são iguais");
}
Método equals:
O método equals compara o conteúdo de duas strings, verificando se elas têm os mesmos caracteres na mesma ordem.
String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");
boolean resultado1 = str1.equals(str2); // true
boolean resultado2 = str1.equals(str3); // true
System.out.println("Resultado 1: " + resultado1);
System.out.println("Resultado 2: " + resultado2);
Neste exemplo, resultado1 será true porque str1 e str2 têm o mesmo conteúdo. resultado2 também será true, pois mesmo sendo criado com new String(), o conteúdo de str3 é igual ao de str1.
Em resumo, use compareTo para determinar a ordem lexicográfica entre duas strings e equals para verificar se duas strings têm o mesmo conteúdo. Lembre-se de que, ao usar equals, você está comparando o conteúdo, não as referências de objetos.