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