📜  Java String compareTo() 方法及示例

📅  最后修改于: 2022-05-13 01:55:00.513000             🧑  作者: Mango

Java String compareTo() 方法及示例

Java中的字符串是 char 数组内部支持的对象。由于数组是不可变的,并且字符串也是一种保存字符的特殊数组,因此,字符串也是不可变的。

Java的String类包含了很多对字符串执行各种操作的方法,例如compare()、concat()、equals()、split()、length()、replace()、compareTo()、substring()等. 在这些方法中,我们将重点关注compareTo()方法。

String.compareTo() 方法

Java String 类 compareTo() 方法按字典顺序将给定字符串与当前字符串进行比较。它返回一个正数、负数或 0。它根据字符串中每个字符的 Unicode 值比较字符串。

如果第一个字符串按字典顺序大于第二个字符串,则返回一个正数(字符值的差)。如果第一个字符串按字典顺序小于第二个字符串,则返回负数,如果第一个字符串按字典顺序等于第二个字符串,则返回 0。

compareTo()方法有三种变体。本文描述了所有这些,如下

1. int compareTo(Object obj)

此方法将此字符串与另一个对象进行比较。

句法:

int compareTo(Object obj)

参数:

  • obj:要比较的对象。

返回值:如果参数是一个按字典顺序等于该字符串的字符串,则返回值 0;如果参数是按字典顺序大于此字符串的字符串,则值小于 0;如果参数是按字典顺序小于此字符串的字符串,则值大于 0。

Java
// Java code to demonstrate the
// working of compareTo()
  
public class Cmp1 {
    public static void main(String args[])
    {
  
        // Initializing Strings
        String str1 = "geeksforgeeks";
        String str2 = new String("geeksforgeeks");
        String str3 = new String("astha");
  
        // Checking if geeksforgeeks string
        // equates to geeksforgeeks object
        System.out.print(
            "Difference of geeksforgeeks(obj) and geeksforgeeks(str) : ");
        System.out.println(str1.compareTo(str2));
  
        // Checking if geeksforgeeks string
        // equates to astha object
        System.out.print(
            "Difference of astha(obj) and geeksforgeeks(str) : ");
        System.out.println(str1.compareTo(str3));
    }
}


Java
// Java code to demonstrate the
// working of compareTo()
  
public class Cmp2 {
    public static void main(String args[])
    {
  
        // Initializing Strings
        String str1 = "geeksforgeeks";
        String str2 = "geeksforgeeks";
        String str3 = "astha";
  
        // Checking if geeksforgeeks string
        // equates to geeksforgeeks string
        System.out.print(
            "Difference of geeksforgeeks(str) and geeksforgeeks(str) : ");
        System.out.println(str1.compareTo(str2));
  
        // Checking if geeksforgeeks string
        // equates to astha string
        System.out.print(
            "Difference of astha(str) and geeksforgeeks(str) : ");
        System.out.println(str1.compareTo(str3));
    }
}


Java
// Java code to demonstrate the
// working of compareToIgnoreCase()
  
public class Cmp3 {
    public static void main(String args[])
    {
  
        // Initializing Strings
        String str1 = "geeks";
        String str2 = "gEEkS";
  
        // Checking if geeksforgeeks string
        // equates to geeksforgeeks string
        // case sensitive
        System.out.print(
            "Difference of geeks and gEEkS (case sensitive) : ");
        System.out.println(str1.compareTo(str2));
  
        // Checking if geeksforgeeks string
        // equates to astha string
        // case insensitive
        // using compareToIgnoreCase()
        System.out.print(
            "Difference of geeks and gEEkS (case insensitive) : ");
        System.out.println(str1.compareToIgnoreCase(str2));
    }
}


输出
Difference of geeksforgeeks(obj) and geeksforgeeks(str) : 0
Difference of astha(obj) and geeksforgeeks(str) : 6

2. int compareTo(String anotherString)

此方法按字典顺序比较两个字符串。

句法:

int compareTo(String anotherString)

参数:

  • anotherString:要比较的字符串。

返回值:如果参数是一个按字典顺序等于该字符串的字符串,则返回值 0;如果参数是按字典顺序大于此字符串的字符串,则值小于 0;如果参数是按字典顺序小于此字符串的字符串,则值大于 0。

Java

// Java code to demonstrate the
// working of compareTo()
  
public class Cmp2 {
    public static void main(String args[])
    {
  
        // Initializing Strings
        String str1 = "geeksforgeeks";
        String str2 = "geeksforgeeks";
        String str3 = "astha";
  
        // Checking if geeksforgeeks string
        // equates to geeksforgeeks string
        System.out.print(
            "Difference of geeksforgeeks(str) and geeksforgeeks(str) : ");
        System.out.println(str1.compareTo(str2));
  
        // Checking if geeksforgeeks string
        // equates to astha string
        System.out.print(
            "Difference of astha(str) and geeksforgeeks(str) : ");
        System.out.println(str1.compareTo(str3));
    }
}
输出
Difference of geeksforgeeks(str) and geeksforgeeks(str) : 0
Difference of astha(str) and geeksforgeeks(str) : 6

3. int compareToIgnoreCase(String str)

此方法按字典顺序比较两个字符串,忽略大小写差异。

句法:

int compareToIgnoreCase(String str)

参数:

  • str:要比较的字符串。

返回值:此方法返回负整数、零或正整数,因为指定的字符串大于、等于或小于此字符串,忽略大小写考虑。

Java

// Java code to demonstrate the
// working of compareToIgnoreCase()
  
public class Cmp3 {
    public static void main(String args[])
    {
  
        // Initializing Strings
        String str1 = "geeks";
        String str2 = "gEEkS";
  
        // Checking if geeksforgeeks string
        // equates to geeksforgeeks string
        // case sensitive
        System.out.print(
            "Difference of geeks and gEEkS (case sensitive) : ");
        System.out.println(str1.compareTo(str2));
  
        // Checking if geeksforgeeks string
        // equates to astha string
        // case insensitive
        // using compareToIgnoreCase()
        System.out.print(
            "Difference of geeks and gEEkS (case insensitive) : ");
        System.out.println(str1.compareToIgnoreCase(str2));
    }
}
输出
Difference of geeks and gEEkS (case sensitive) : 32
Difference of geeks and gEEkS (case insensitive) : 0