在 Java 中比較包含(可能)null 值的字串?


Java 中的字串表示一個字元陣列。它們由 String 類表示。

使用 compareTo() 方法

String 類的 compareTo() 方法接受兩個字串(逐個字元),它還接受 null 值。此方法返回一個表示結果的整數,如果獲得的整數的值為 −

  • 0:給定兩個字串相等或 null。
  • 1 或更小:當前字串位於引數之前。
  • 1 或更大:當前字串位於引數之後。

示例

import java.util.Scanner;
public class CompringStrings {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter your first string value: ");
      String str1 = sc.next();
      System.out.println("Enter your second string value: ");
      String str2 = sc.next();
      //Comparing two Strings
      int res = str1.compareTo(str2);
      System.out.println(res);
      if(res==0) {
         System.out.println("Both Strings are null or equal");
      }else if(res<0){
         System.out.println(""+str1+" preceeds "+str2+"");
      }else if(res>0){
         System.out.println(""+str2+" preceeds "+str1+"");
      }
   }
}

輸出

Enter your first string value:
null
Enter your second string value:
null
0
Both Strings are null or equal

輸出

Enter your first string value:
mango
Enter your second string value:
apple
-1
apple preceeds mango

使用 Object 類的 equals() 方法

同樣,Object 類的 equals() 方法接受兩個字串值並返回一個布林值,如果兩者相等(或 null),則為 true,否則為 false。

示例

import java.util.Scanner;
public class CompringStrings {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter your first string value: ");
      String str1 = sc.next();
      System.out.println("Enter your second string value: ");
      String str2 = sc.next();
      if(str1.equals(str2)) {
         System.out.println("Both Strings are null or equal");
      }else {
         System.out.println("Both Strings are not equal");
      }
   }
}

輸出 1

Enter your first string value:
null
Enter your second string value:
null
0
Both Strings are null or equal

更新於: 2019 年 8 月 7 日

6 千次瀏覽

啟動您的 職業

完成課程以獲得認證

開始學習
廣告