Java 中忽略大寫和小寫

Mohammad Irfan 2023年1月30日 2022年4月26日
  1. 在 Java 中使用 toUppercase() 方法忽略大小寫
  2. 在 Java 中使用 toLowerCase() 方法忽略大小寫
  3. 在 Java 中使用 equalsIgnoreCase() 方法忽略大小寫
  4. 在 Java 中使用 compareToIgnoreCase() 方法忽略大小寫
Java 中忽略大寫和小寫

本教程介紹如何在 Java 中忽略字串的大小寫。

字串是一個字元序列,在 Java 中,它是一個類,還包含多個實用方法。字串可以是小寫或大寫或兩者的混合,這很好,但有時在比較字串時會產生問題,因為每個字元都有唯一的 Unicode 值。

在本文中,我們將學習在忽略大小寫的情況下處理字串。我們熟悉使用 equals() 方法比較兩個字串。當兩個字串相等時,此方法返回 true,包括它們的大小寫。

例如,看下面的例子。

import java.util.*;  
import java.lang.Object;
public class SimpleTesting {
    public static void main(String args[]) {
        String a = "SimpleTesting";
        String b = "SimpleTesting";
        String c = "SimpleTesting";
        a.equals(b); // return false
        a.equals(c); // returns true   
    }
}

這讓我們想知道是否有任何方法可以在忽略它們的情況下比較兩個字串。

那麼,Java 為我們提供了各種方法來完成這項任務。在這裡,我們將詳細討論這些方法:

  • 使用 toUppercase() 方法忽略大小寫
  • 使用 toLowerCase() 方法忽略大小寫
  • 使用 equalsIgnoreCase() 方法忽略大小寫
  • 使用 compareToIgnoreCase() 方法忽略大小寫

在 Java 中使用 toUppercase() 方法忽略大小寫

在這種方法中,我們首先將兩個字串都轉換為大寫,然後呼叫 equals() 方法。此方法的簽名是:

public String toUpperCase()

此方法根據預設語言環境將所有字串字元轉換為大寫。這意味著只有在預設語言環境為 Locale.ENGLISHLocale.US 時,icecream 才會轉換為 ICECREAM

如果預設本地設定為無法識別這些字元的其他國家或語言,我們可能會得到不可預知的結果。我們可以將語言環境傳遞給函式呼叫來避免這種情況。

現在讓我們使用 Java 中的 toUpperCase()equals() 方法比較兩個字串。看下面的程式碼:

import java.util.*;  
import java.lang.Object;
public class SimpleTesting {
    public static void main(String args[]) {
        String desert1 ="icecream";
        String desert2 = "IceCream";
        
        //converting to both the strings to upper case
        String desert1_converted = desert1.toUpperCase();
        String desert2_converted = desert2.toUpperCase();
        
        //comparing both the desert
        boolean same_or_not1 = desert1_converted.equals(desert2_converted);
        boolean same_or_not2 = desert1.equals(desert2);
        
        System.out.println("Comparison with conversion: " +same_or_not1);
        System.out.println("Comparison without conversion: "  +same_or_not2);
    }
}

輸出:

Comparison with conversion: true
Comparison without conversion: false

在上面的示例中,toUpperCase() 無需傳遞語言環境就可以正常工作,因為我們的預設語言環境是英語。

在 Java 中使用 toLowerCase() 方法忽略大小寫

此方法與前一種方法一樣,只是它將兩個字串的所有字元都轉換為小寫。方法簽名是:

public String toLowerCase()

根據預設語言環境,此過程將字串中的所有字元更改為小寫。

這意味著如果預設語言環境是 Locale.ENGLISHLocale.US,那麼 ICECREAM 將被轉換為 icecream。如果預設本地設定為無法識別這些字元的其他國家或語言,我們可能會得到不可預知的結果。

我們可以將語言環境作為引數傳遞給函式呼叫來避免這種情況。讓我們仔細看看這個功能是如何運作的。

現在讓我們使用 Java 中的 toLowerCase()equals() 方法比較兩個字串。看下面的程式碼:

import java.util.*;  
import java.lang.Object;
public class SimpleTesting {
    public static void main(String args[]) {
        String desert1 ="icecream";
        String desert2 = "IceCream";
        
        //converting to both the strings to lower case
        String desert1_converted = desert1.toLowerCase();
        String desert2_converted = desert2.toLowerCase();
        
        //comparing both the desert
        boolean same_or_not1 = desert1_converted.equals(desert2_converted);
        boolean same_or_not2 = desert1.equals(desert2);
        
        System.out.println("Comparison with conversion: " +same_or_not1);
        System.out.println("Comparison without conversion: "  +same_or_not2);
    }
}

輸出:

Comparison with conversion: true
Comparision without conversion: false

在 Java 中使用 equalsIgnoreCase() 方法忽略大小寫

這個方法和 equals() 方法一樣,只是它忽略了字串的大小寫。我們先來看看方法簽名。

public boolean equalsIgnoreCase(String anotherString)

如果兩個字串在忽略大小寫後相等,則此方法返回 true

如果兩個字串的長度相同,並且兩個字串中對應的字元相同,則認為它們相等,忽略大小寫。根據這種方法,ICECREAMicecream 是相同的;因此,將返回 true

檢視下面的程式碼以瞭解它是如何工作的。

import java.util.*;  
import java.lang.Object;
public class SimpleTesting {
    public static void main(String args[]) {
        String desert1 ="icecream";
        String desert2 = "IceCream";

        //comparing both the deserts
        boolean same_or_not1 = desert1.equalsIgnoreCase(desert2);
 
        System.out.println("Comparison : " +same_or_not1);
    }
}

輸出:

Comparison : true

在 Java 中使用 compareToIgnoreCase() 方法忽略大小寫

這種方法按字典順序比較兩個字串,不考慮大小寫差異。此方法返回一個整數,該整數等於前兩個不相等字元之間的差。

它的簽名是:

public int compareToIgnoreCase(String str)

如果兩個字串相等,則返回 0。看下面的示例程式碼:

import java.util.*;  
import java.lang.Object;
public class SimpleTesting {
    public static void main(String args[]) {
        String desert1 ="icecream";
        String desert2 = "IceCream";

        //comparing both the deserts
        int same_or_not1 = desert1.compareToIgnoreCase(desert2);
       
        System.out.println("Comparision : " +same_or_not1);       
    }
}

輸出:

Comparision : 0

相關文章 - Java String