Co to jest metoda Java String CompareTo()?
Metoda CompareTo() klasy string Java zwraca wartość 0, jeśli oba ciągi są leksykograficznie równe. Jeśli porównywany ciąg jest większy leksykograficznie, zwracana jest wartość dodatnia, w przeciwnym razie zwracana jest wartość ujemna. Zatem metoda Java string CompareTo() służy do porównywania dwóch ciągów. Ta metoda zawsze używa wartości Unicode każdego znaku w ciągu do ich porównania. Podczas porównywania ciągów, jeśli którykolwiek z nich jest pusty, zawsze zwraca długość ciągu. Jeśli którykolwiek z ciągów jest pusty, mogą rozegrać się dwa scenariusze. Jeśli pierwszy ciąg jest pusty, zwraca wartość ujemną, w przeciwnym razie zwraca wartość dodatnią. W metodzie Java string.compareTo() domyślnie rozróżniana jest wielkość liter, ale możemy użyć metody CompareToIgnoreCase() klasy Java String , aby zignorować wielkość liter podczas porównania. Ta metoda zwraca również ujemną, 0 lub dodatnią liczbę całkowitą, jak opisano powyżej.Składnia
public int compareTo(string str)
public int compareTo(object obj)
Parametry
Metoda Java string CompareTo() odbiera ciąg znaków lub obiekt jako parametr, jak widać powyżej w składni.Zwroty
- Zwraca 0, jeśli oba są leksykograficznie równe.
- Zwraca dodatnią liczbę całkowitą, jeśli porównywany ciąg lub obiekt jest większy pod względem leksykograficznym.
- Zwraca ujemną liczbę całkowitą, jeśli jedna z porównywanych jest mniejsza leksykograficznie.
Wyjątki
Metoda CompareTo () zwraca 2 wyjątki.- ClassCastException , jeśli obiektu nie można porównać, zwraca ten wyjątek.
- NullPointerException , jeśli ciąg ma wartość null, zgłaszany jest wyjątek NullPointerException.
Przykłady metod metody CompareTo() w języku Java
class Main {
public static void main(String[] args) {
// declaring strings to be used in this example for Java string compareTo() method
String str = "Java compareTo() method example";
String str1 = "Java compareTo() method example";
String str2 = "this is Java compareTo() method example";
String str3 = "Java CompareTo() Method Example";
String str4 = "a Java compareTo() method example";
String str5 = new String("Java compareTo() method example");
// comparing the str and str1 strings
System.out.println(str.compareTo(str1));
// comparing the str and str2 strings
System.out.println(str.compareTo(str2));
// comparing the str and str3 strings
System.out.println(str.compareTo(str3));
// comparing the str and str4 strings
System.out.println(str.compareTo(str4));
// comparing the str string and str5 string object
System.out.println(str.compareTo(str5));
}
}
Wyjście
0 -42 74 -23 0
Jak wiemy, że ciągi str i str1 są sobie równe leksykograficznie, więc zwróciło 0. Porównując str i str2 zwróciło wartość ujemną 42, ponieważ porównywany ciąg str jest mniejszy leksykograficznie, więc jest liczbą ujemną i na podstawie wartości Unicode t char i J char ma różnicę 42, więc zwracana jest wartość -42. W pozostałej części możesz zobaczyć wyniki, aby lepiej zrozumieć tę metodę.
Przykład pustego ciągu
public class Main{
public static void main(String args[]){
String str="compareTo()";
// declaring an empty string
String str1="";
String str2="method";
System.out.println(str.compareTo(str1));
System.out.println(str1.compareTo(str2));
}
}
Wyjście
11 -6
Przykład IgnoreCase
public class Main{
public static void main(String args[]){
String str="compareTo()";
// declaring the same string with uppercase letters
String str1="COMPARETO()";
System.out.println(str.compareTo(str1));
System.out.println(str.compareToIgnoreCase(str1));
}
}
Wyjście
32 0
GO TO FULL VERSION