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 equals()用法及代碼示例
- Java String endsWith()用法及代碼示例
- Java String valueOf()用法及代碼示例
- Java String getChars()用法及代碼示例
- Java String substring()用法及代碼示例
- Java String replace()用法及代碼示例
- Java String contains()用法及代碼示例
- Java String copyValueOf()用法及代碼示例
- Java String isEmpty()用法及代碼示例
- Java String toString()用法及代碼示例
- Java String split()用法及代碼示例
- Java String lines()用法及代碼示例
- Java String repeat()用法及代碼示例
- Java String strip()用法及代碼示例
- Java String lastIndexOf()用法及代碼示例
- Java String replaceAll()用法及代碼示例
- Java String subSequence()用法及代碼示例
- Java String startsWith()用法及代碼示例
- Java String getBytes()用法及代碼示例
- Java String indexOf()用法及代碼示例
注:本文由純淨天空篩選整理自 Java String equalsIgnoreCase()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。