當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java String equalsIgnoreCase()用法及代碼示例


Java String 類 equalsIgnoreCase() 方法根據字符串的內容比較兩個給定的字符串,而不管字符串的大小寫(小寫和大寫)。它就像 equals() 方法,但不檢查區分大小寫。如果有任何字符不匹配,則返回 false,否則返回 true。

簽名

publicboolean equalsIgnoreCase(String str)

參數

str:另一個字符串,即與此字符串進行比較。

返回

如果兩個字符串的字符相等,則返回 true,忽略大小寫,否則返回 false。

內部實現

public boolean equalsIgnoreCase(String anotherString) {  
       return (this == anotherString) ? true  
              :(anotherString != null)  
               && (anotherString.value.length == value.length)  
               && regionMatches(true, 0, anotherString, 0, value.length);  
   }

從實現中可以明顯看出,equalsIgnoreCase() 方法正在調用 regionMatches() 方法。它使 equalsIgnoreCase() 方法不區分大小寫。下麵提到了 regionMatches() 方法的簽名。

public boolean regionMatches(boolean ignoreCase, int tooffset, String other, int ooffset, int len)

regionMatches() 方法解析五個參數。在上麵的實現中,第一個參數 ignoreCase 設置為 true。因此,當執行該方法時,它會檢查 ignoreCase 標誌是否為真。如果是,則從兩個字符串中各取一個字符,然後進行比較。如果比較結果為假值,則將兩個字符都轉換為大寫,然後檢查比較結果是否仍然為假值,然後將兩個字符都轉換為小寫,然後進行比較。如果比較給出真值,則兩個字符串的內容相等;否則,不會。下麵提到了所討論的比較的代碼片段。

while (toffset < last) 
{
char ch1 = getChar(value, toffset++);
char ch2 = getChar(other, ooffset++);
if (ch1 == ch2) 
{
continue;
}
// convert each character to uppercase and 
// then make the comparison.
// If the comparison yeilds a true value, 
// then next pair of characters should be scanned
char uCh1 = Character.toUpperCase(ch1);
char uCh2 = Character.toUpperCase(ch2);
if (uCh1 == u2) 
{
continue;
}

// convert each character to lowercase and 
// then make the comparison.
// If the comparison yeilds a true value, 
// then next pair of characters should be scanned
// Otherwise, return false.
if (Character.toLowerCase(uCh1) == Character.toLowerCase(uCh2)) 
{
continue;
}
return false;
}

// reaching here means the content of both the strings 
// are the same after ignoring the case sensitiveness
return true;

有人可能會爭辯說,如果我們在轉換為大寫之後進行比較,那麽為什麽我們需要通過將字符轉換為小寫來進行額外的比較。這背後的原因是為了滿足格魯吉亞字母的要求。大寫轉換不適用於格魯吉亞字母,因為它們對大小寫轉換有一些奇怪的規則。因此,需要通過將字符轉換為小寫進行額外的比較。

Java 字符串 equalsIgnoreCase() 方法示例

文件名:EqualsIgnoreCaseExample.java

public class EqualsIgnoreCaseExample{
public static void main(String args[]){
String s1="javatpoint";
String s2="javatpoint";
String s3="JAVATPOINT";
String s4="python";
System.out.println(s1.equalsIgnoreCase(s2));//true because content and case both are same
System.out.println(s1.equalsIgnoreCase(s3));//true because case is ignored
System.out.println(s1.equalsIgnoreCase(s4));//false because content is not same
}}

輸出:

true
true
false

Java 字符串 equalsIgnoreCase() 方法示例 2

讓我們看一個示例,其中我們正在測試字符串之間的字符串相等性。

文件名:EqualsIgnoreCaseExample2.java

import java.util.ArrayList;
public class EqualsIgnoreCaseExample2 {
	public static void main(String[] args) {
		String str1 = "Mukesh Kumar";
		ArrayList<String> list = new ArrayList<>();
		list.add("Mohan"); 
		list.add("Mukesh");
		list.add("RAVI");
		list.add("MuKesH kuMar");
		list.add("Suresh");
		for (String str:list) {
			if (str.equalsIgnoreCase(str1)) {
				System.out.println("Mukesh kumar is present");
			}
		}
	}
}

輸出:

Mukesh kumar is present




相關用法


注:本文由純淨天空篩選整理自 Java String equalsIgnoreCase()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。