JAVA中字符串比较equals和equalsIgnoreCase的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中字符串比较equals和equalsIgnoreCase的区别相关的知识,希望对你有一定的参考价值。

equals和equalsIgnoreCase的区别是:equals考虑大小写,equalsIgnoreCase忽略大小写。


equals,方法展示:

public boolean equals(Object anObject)

将此字符串与指定的对象比较。当该参数不为 null,并且是与此对象表示相同字符序列的 String
对象时,结果才为 true,否则为false。


equalsIgnoreCase,方法展示:

public boolean equalsIgnoreCase(String anotherString)

将此 String 与另一个 String
比较,不考虑大小写。如果两个字符串的长度相同,并且其中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的;

当参数不为 null,且这两个 String 相等(忽略大小写),则返回
true,否则返回 false。


举例:

String a ="lol";
String b ="Lol";
System.out.println(a.equals(b));//输出为false
System.out.println(a.equalsIgnoreCase(b));//输出为true

参考技术A 在java.lang.String中为我们提供两个字符串的是否相等的函数equals和equalsIgnoreCase他们具有一下的关系:
public boolean equals(Object obj);
一般是A.equals(B)这样调用,对应的含义是:A和B两个字符串内容相同;
示例:"abc".equals("abc")返回的是true,"Abc".equals("abc")返回的是false;

public boolean equalsIgnoreCase(String str);
一般是A.equalsIgnoreCase(B)这样调用,对应的含义是A和B在忽略大小写的情况下内容是否相同。
示例:"abc".equals("abc")返回的是true,"Abc".equals("abc")返回的是true,"jul".equals("mkl")返回的是false
备注:在java中A==B是指A和B都指向同一个地址空间,这是java和某些语言的区别,即A==B即使都是'abc'他的返回值都会是false,因为他们的储存空间不同。
参考技术B equals方法来自于Object类
equalsIgnoreCase方法来自String类
equals对象参数是Object 用于比较两个对象是否相等
equals在Object类中方法默然比较对象内存地址,所有我们应该重写这个方法
equals在把对象放入HashMap中会被掉用
equalsIgnoreCase是String特有的方法
equalsIgnoreCase方法的参数是String对象
equalsIgnoreCase 方法是比较两个String对象是否相等(并且忽略大小写)
参考技术C equals是区分大小写,equalsIgnoreCase是不区分大小写。
比如asdfg和ASdfg,
按照equals,asdfg和ASdfg是不相等的,
但是按照equalsIgnoreCase,asdfg和ASdfg就是相等的
参考技术D equals表示比较字符串不忽略大小写,比如HI和hi比较结果是false
equalsIgnoreCase则是忽略大小写,即HI和hi比较结果为true

java中equals和equalsignorecase的区别

equals和equalsignorecase的区别和使用

1、使用equals( )方法比较两个字符串是否相等。它具有如下的一般形式:

boolean equals(Object str)


这里str是一个用来与调用字符串(String)对象做比较的字符串(String)对象。如果两个字符串具有相同的字符和长度,它返回true,否则返回false。这种比较是区分大小写的。


2、为了执行忽略大小写的比较,可以调用equalsIgnoreCase( )方法。当比较两个字符串时,它会认为A-Z和a-z是一样的。其一般形式如下:


boolean equalsIgnoreCase(String str)


这里,str是一个用来与调用字符串(String)对象做比较的字符串(String)对象。如果两个字符串具有相同的字符和长度,它也返回true,否则返回false。


下面的例子说明了equals( )和equalsIgnoreCase( )方法:

 

class equalsDemo 
public static void main(String args[]) 
String s1 = "Hello";
String s2 = "Hello";
String s3 = "Good-bye";
String s4 = "HELLO";
System.out.println(s1 + " equals " + s2 + " -> " +
s1.equals(s2));
System.out.println(s1 + " equals " + s3 + " -> " +
s1.equals(s3));
System.out.println(s1 + " equals " + s4 + " -> " +
s1.equals(s4));
System.out.println(s1 + " equalsIgnoreCase " + s4 + " -> " +
s1.equalsIgnoreCase(s4));

   


该程序的输出如下所示:


Hello equals Hello -> true

Hello equals Good-bye -> false

Hello equals HELLO -> false

Hello equalsIgnoreCase HELLO -> true

参考技术A equals比较时,要比较大小写是否相同,
而后者,忽略了大小写,ignore就是忽略的意思
如,abc与Abc,前者返回false,后者返回true
参考技术B equals是比较2个字符串是否相等的,区分大小写 equalsignorecase功能一样,但是不区分大小写 参考技术C "a".equals("a")的结果为true,但"A".equals("a")为false"a".equalsignorecase("a")的结果为true,"A".equalsignorecase("a")的结果为true 参考技术D 区别如下:
1、String.equals()对大小写敏感
2、String.equalsIgnoreCase()忽略大小写
例如:"ABC".equals("abc")是false
"ABC".equalsIgnoreCase("abc")为ture

以上是关于JAVA中字符串比较equals和equalsIgnoreCase的区别的主要内容,如果未能解决你的问题,请参考以下文章

java中equals和equalsignorecase的区别

java中equals和equalsignorecase的区别

JAVA中字符串比较equals()和equalsIgnoreCase()的区别

Java里的equals和==的区别是否equals是比较内容,==是比较地址的?

java 中字符串比较用=和equals区别

如何重构这个 Java 代码片段