Java - Character compareTo() 方法



描述

Java 的 Character compareTo() 方法用於數值比較兩個 Character 物件。

Java Character 類中的這個內建方法接受一個 Character 物件作為引數,並被呼叫到另一個需要比較的 Character 物件上。

如果引數 Character 大於當前 Character,則該方法將產生一個負值;但如果引數 Character 小於當前 Character,則該方法返回一個正值。如果兩個物件具有相同的引用,則產生零。

注意 - 這嚴格是一個數值比較;它不依賴於區域設定。

語法

以下是 Java Character compareTo() 方法的語法

public int compareTo(Character anotherCharacter)

引數

  • anotherCharacter − 要比較的 Character。

返回值

如果引數 Character 等於當前 Character,則此方法返回 0 值;如果當前 Character 數值小於 Character 引數,則返回負值;如果當前 Character 數值大於 Character 引數,則返回正值。

比較兩個 Character 物件示例

以下示例演示了 Java Character compareTo() 方法的用法。我們建立了兩個 Character 變數併為其分配了 Character 物件。現在使用 compare() 方法,我們對它們進行了比較,並列印結果。

以下示例演示了 Java Character compareTo() 方法的用法。

package com.tutorialspoint;

public class CharacterDemo {
   public static void main(String[] args) {

      // create 2 Character objects c1, c2
      Character c1, c2;

      // assign values to c1, c2
      c1 = new Character('a');
      c2 = new Character('b');

      // create an int type
      int res;

      // compare c1 with c2 and assign result to res
      res = c1.compareTo(c2);

      String str1 = "Both values are equal ";
      String str2 = "First character is numerically greater";
      String str3 = "Second character is numerically greater";
      if( res == 0 ) {
         System.out.println( str1 );
      } else if( res > 0 ) {
         System.out.println( str2 );
      } else if( res < 0 ) {
         System.out.println( str3 );
      }
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

Second character is numerically greater

比較包含數字的兩個 Character 物件示例

在這個例子中,讓我們用數字作為 char 值來例項化 Character 物件。呼叫該方法並比較這些數字。

package com.tutorialspoint;

public class CharacterDemo {
   public static void main(String[] args) {

      // create 2 Character objects c1, c2
      Character c1, c2;

      // assign values to c1, c2
      c1 = new Character('9');
      c2 = new Character('1');      
      int result;

      // compare c1 with c2 and assign to result
      result = c1.compareTo(c2);

      if( result == 0 ) {
         System.out.println("Both values are equal ");
      } else if( result > 0 ) {
         System.out.println("First character is numerically greater");
      } else if( result < 0 ) {
         System.out.println("Second character is numerically greater");
      }
   }
}

輸出

一旦我們編譯並執行上面的程式碼,該方法就會比較兩個輸入的數字字元,並列印輸出為:

First character is numerically greater

比較包含符號的兩個 Character 物件示例

下面的例子將符號作為字元物件,並比較這些物件的 Unicode 程式碼點以返回數值上更大的符號。

package com.tutorialspoint;

public class CharacterDemo {
   public static void main(String[] args) {

      // create 2 Character objects c1, c2
      Character c1, c2;

      // assign values to c1, c2
      c1 = new Character('*');
      c2 = new Character('/');
      int result;

      // compare c1 with c2 and assign to result
      result = c1.compareTo(c2);

      if( result == 0 ) {
         System.out.println("Both values are equal ");
      } else if( result > 0 ) {
         System.out.println("First character is numerically greater");
      } else if( result < 0 ) {
         System.out.println("Second character is numerically greater");
      }
   }
}

輸出

編譯後,執行程式碼以獲得以下輸出:

Second character is numerically greater

使用 compareTo 方法比較兩個 char 示例

我們必須理解,Java Character compareTo() 方法只比較 Character 物件,這與 char 資料型別完全不同。但是,如果給程式的輸入是一個 char 變數,則會提示編譯時錯誤。

public class CharacterDemo {
   public static void main(String[] args) {
      char c1, c2;
      c1 = 'A';
      c2 = 'B';
      int result;
      result = c1.compareTo(c2);
      if( result == 0 ) {
         System.out.println("Both values are equal ");
      } else if( result > 0 ) {
         System.out.println("First character is numerically greater");
      } else if( result < 0 ) {
         System.out.println("Second character is numerically greater");
      }
   }
}

編譯時錯誤

執行上述程式碼將導致編譯時錯誤,因為 char 變數不能引用方法。只有使用該方法所在的類的物件才有可能。

CharacterDemo.java:9: error: char cannot be dereferenced
      result = c1.compareTo(c2);
                 ^
1 error
java_lang_character.htm
廣告