Java中的String类的equalsIgnoreCase()方法是基于字符串内容来比较两个给定的字符串,而不考虑大小写。它类似于equals()方法,但不区分大小写。如果存在任何不匹配的字符,它将返回false,否则返回true。

语法

public boolean 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 toffset, String other, int ooffset, int len)

regionMatches()方法有五个参数。在上述实现中,第一个参数ignoreCase被设置为true。因此,当该方法被执行时,它会检查ignoreCase标志是否为true。如果是,它会逐个比较两个字符串中的字符。如果比较结果为false,则将两个字符转换为大写并再次进行比较。

如果比较结果仍然为false,则将两个字符转换为小写并再次进行比较。如果比较结果为true,则表示两个字符串具有相同的内容;否则,它们不相等。以下是所讨论的比较的代码片段。

while (toffset < last) {
char ch1 = getChar(value, toffset++);
char ch2 = getChar(other, ooffset++);
if (ch1 == ch2) {
continue;
}
// 将每个字符转换为大写字母,然后进行比较。
// 如果比较结果为true,则应扫描下一组字符
char uCh1 = Character.toUpperCase(ch1);
char uCh2 = Character.toUpperCase(ch2);
if (uCh1 == u2) {
continue;
}
// 将每个字符转换为小写字母,然后进行比较。
// 如果比较结果为true,则应扫描下一组字符
// 否则,返回false。
if (Character.toLowerCase(uCh1) == Character.toLowerCase(uCh2)) {
    continue;
}
return false;
}

// 到达这里意味着在忽略大小写的情况下两个字符串的内容相同
return true;

regionMatches()方法首先比较两个字符串中相同位置的字符,如果它们相等,则继续比较下一个字符。如果两个字符不相等,则将它们转换为大写字母并再次进行比较。如果比较结果为true,则继续比较下一个字符;否则,将它们转换为小写字母并再次进行比较。

如果比较结果为true,则继续比较下一个字符。如果所有字符都匹配,则返回true;否则返回false。对于一些语言的字母,将字符转换为大写字母可能不起作用,因此需要将字符转换为小写字母进行比较。以下是所讨论的比较代码片段。

Java String 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,因为内容和大小写都相同
System.out.println(s1.equalsIgnoreCase(s3));//true,因为忽略了大小写
System.out.println(s1.equalsIgnoreCase(s4));//false,因为内容不同
}}

现在测试它 输出:

true
true
false

Java String 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, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想

添加新评论