O que é o método compareTo () em Java?
compareTo () é usado para comparar duas strings lexicograficamente. Cada caractere de ambas as strings é convertido em um valor Unicode. No entanto, se as duas strings forem iguais, esse método retornará 0, caso contrário, resultará apenas em um valor negativo ou positivo.
O método Java String compareTo () é definido na interface java.lang.Comparable
Sintaxe: como escrever um método compareTo () em Java :
public int compareTo(String str)
Entrada de parâmetro:
str - A função compareTo () em Java aceita apenas um tipo de dados String de entrada.
Retorna Método:
Este método Java compareTo () retorna um tipo de dados int que é baseado na comparação lexicográfica entre duas strings.
- retorna <0, então a String que chama o método é lexicograficamente primeiro
- retorna == 0 então as duas strings são lexicograficamente equivalentes
- retorna> 0, então o parâmetro passado para o método Java compareTo () é lexicograficamente primeiro.
Exemplo do método Java String compareTo ():
Exemplo 1:
public class Sample_String {public static void main(String[] args) {String str_Sample = "a";System.out.println("Compare To 'a' b is : " + str_Sample.compareTo("b"));str_Sample = "b";System.out.println("Compare To 'b' a is : " + str_Sample.compareTo("a"));str_Sample = "b";System.out.println("Compare To 'b' b is : " + str_Sample.compareTo("b"));}}
Resultado
Comparar com 'a' b é: -1
Comparar com 'b' a é: 1 Comparar com 'b' b é: 0Aqui,
- O caractere a vem antes de b em ordem alfabética. Portanto, a saída é -1
- O caractere b vem depois de a em ordem alfabética. Portanto, a saída é 1
- Os caracteres b são equivalentes, portanto, a saída é 0.
Você pode usar o método Use "compareToIgnoreCase" caso não queira que o resultado faça distinção entre maiúsculas e minúsculas. Vamos entender com um exemplo Java compareTo ().
Exemplo 2:
public class Sample_String {public static void main(String[] args) {//Compare to a StringString str_Sample = "RockStar";System.out.println("Compare To 'ROCKSTAR': " + str_Sample.compareTo("rockstar"));//Compare to - Ignore caseSystem.out.println("Compare To 'ROCKSTAR' - Case Ignored: " + str_Sample.compareToIgnoreCase("ROCKSTAR"));}}
Resultado
Compare com 'ROCKSTAR': -32 Compare com 'ROCKSTAR' - Caso ignorado: 0
Quando usar o método compareTo () em Java?
O método Java String compareTo () é usado para realizar a classificação natural na string. A classificação natural significa a ordem de classificação que se aplica ao objeto, por exemplo, ordem lexical para String, ordem numérica para classificação de inteiros, etc.
A ordem lexical nada mais é do que ordem alfabética. O método compareTo () Java faz uma comparação sequencial de letras na string que têm a mesma posição.
Nesse método, se a primeira string for sempre lexicograficamente maior que a segunda string, ele retornará um número positivo.
se a1> a2, ele retorna um número negativo
se a1 se a1 == a2, retorna 0 Vamos entender com Java String compareTo () Example. Exemplo 3: Resultado: String 1: Guru1public class Compare {public static void main(String[] args) {String s1 = "Guru1";String s2 = "Guru2";System.out.println("String 1: " + s1);System.out.println("String 2: " + s2);// Compare the two strings.int S = s1.compareTo(s2);// Show the results of the comparison.if (S < 0) { System.out.println("\"" + s1 + "\"" + " is lexicographically higher than " + "\"" + s2 + "\"");} else if (S == 0) {System.out.println("\"" + s1 + "\"" + " is lexicographically equal to " + "\"" + s2 + "\"");} else if (S> 0) {System.out.println("\"" + s1 + "\"" + " is lexicographically less than " + "\"" + s2 + "\"");}}}