如何在Java中進行不區分大小寫的字串比較?


我們可以透過多種方式在Java中比較字串:

  • 使用compareTo()方法 − **compareTo()** 方法按字典順序比較兩個字串。比較基於字串中每個字元的Unicode值。此String物件表示的字元序列與引數字串表示的字元序列進行字典順序比較。

示例

 線上演示

import java.util.Scanner;
public class StringComparison {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter string1: ");
      String str1 = sc.next();
      System.out.println("Enter string2: ");
      String str2 = sc.next();
      int result = str1.compareTo(str2);
      if (result < 0) {
         System.out.println("str1 is not equal to str2");
      } else if (result == 0) {
         System.out.println("str1 is equal to str2");
      } else {
         System.out.println("str1 is not equal to str2");
      }
   }
}

輸出1

Enter string1:
Hello
Enter string2:
Hello
str1 is equal to str2

輸出2

Enter string1:
hello
Enter string2:
hi
str1 is not equal to str2
  • 使用==運算子 − 你可以使用==運算子比較兩個字串。但是,它比較的是給定變數的引用,而不是值。

示例

 線上演示

import java.util.Scanner;
public class StringComparison {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      String str1 = "hello";
      String str2 = "hello";
      if (str1 == str2 ){
         System.out.println("Both are equal");
      } else {
         System.out.println("Both are not equal");
      }
   }
}

輸出

Both are equal
  • 使用**equals()** 方法 − String類的**equals()**方法接受一個String作為引數,並將當前字串與指定的Object進行比較。當且僅當引數不為null,並且是一個String物件,其表示的字元序列與當前物件相同(包括大小寫)時,結果為true。

示例

 線上演示

import java.util.Scanner;
public class StringComparison {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter string1: ");
      String str1 = sc.next();
      System.out.println("Enter string2: ");
      String str2 = sc.next();
      boolean bool = str1.equals(str2);
      if (bool) {
         System.out.println("Both are equal");
      } else {
         System.out.println("Both are not equal");
      }
   }
}

輸出1

Enter string1:
Hello
Enter string2:
hello
Both are not equal

輸出2

Enter string1:
Hello
Enter string2:
Hello
Both are equal

不區分大小寫的字串比較

String類的**equalsIgnoreCase()**方法類似於equals()方法,區別在於此方法在比較給定字串與當前字串時忽略大小寫。

示例

 線上演示

import java.util.Scanner;
public class StringComparison {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter string1: ");
      String str1 = sc.next();
      System.out.println("Enter string2: ");
      String str2 = sc.next();
      boolean bool = str1.equalsIgnoreCase(str2);
      if (bool) {
         System.out.println("Both are equal");
      } else {
         System.out.println("Both are not equal");
      }
   }
}

輸出1

Enter string1:
Hello
Enter string2:
hello
Both are equal

更新於:2019年10月11日

724 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告