在 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 千次浏览

启动您的 职业

完成课程以获得认证

开始学习
广告
© . All rights reserved.