当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。