在 Java 中比较字符串与(可能的)空值?

java 8object oriented programmingprogramming更新于 2024/10/13 15:19:00

Java 中的字符串表示字符数组。它们由 String 类表示。

使用 compareTo() 方法

String 类的 compareTo() 方法两个字符串(char by char)也接受空值。如果获得的整数值为 −,则此方法返回表示结果的整数。

  • 0:给定两个字符串相等或为空。
  • 1 或更少:当前字符串位于参数之前。
  • 1 或更多:当前字符串位于参数之后。

示例

import java.util.Scanner;
public class CompringStrings {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("输入第一个字符串值:");
      String str1 = sc.next();
      System.out.println("输入第二个字符串值:");
      String str2 = sc.next();
      //比较两个字符串
      int res = str1.compareTo(str2);
      System.out.println(res);
      if(res==0) {
         System.out.println("两个字符串都为空或相等");
      }else if(res<0){
         System.out.println(""+str1+" 位于 "+str2+"");
      }else if(res>0){
         System.out.println(""+str2+" 在 "+str1+"" 之前);
      }
   }
}

输出

输入第一个字符串值:
null
输入第二个字符串值:
null
0
两个字符串都为空或相等

输出

输入第一个字符串值:
mango
输入第二个字符串值:
apple
-1
apple 位于 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("输入第一个字符串值:");
      String str1 = sc.next();
      System.out.println("输入第二个字符串值:");
      String str2 = sc.next();
      if(str1.equals(str2)) {
          System.out.println("两个字符串为空或相等");
      }else {
          System.out.println("两个字符串不相等");
      }
   }
}

输出 1

输入第一个字符串值:
null
输入第二个字符串值:
null
0
两个字符串为空或相等

相关文章