一、JAVA中字符串比较equals和equalsIgnoreCase的区别
equals和equalsIgnoreCase的区别是:equals考虑大小写,equalsIgnoreCase忽略大小写。
equals,方法展示:
publicbooleanequals(ObjectanObject)
将此字符串与指定的对象比较。当该参数不为 null,并且是与此对象表示相同字符序列的 String
对象时,结果才为 true,否则为false。
equalsIgnoreCase,方法展示:
publicbooleanequalsIgnoreCase(StringanotherString)
将此 String与另一个 String
比较,不考虑大小写。如果两个字符串的长度相同,并且其中的相应字符都相等(忽略大小写),则认为这两个字符串是相等的;
当参数不为 null,且这两个 String相等(忽略大小写),则返回
true,否则返回 false。
举例:
Stringa="lol";
Stringb="Lol";
System.out.println(a.equals(b));//输出为false
System.out.println(a.equalsIgnoreCase(b));//输出为true
二、java中equalsignorecase怎么用
equalsIgnoreCase(String anotherString)
anotherString:anotherString为指定比较的字符串对象。
示例使用equalsIgnoreCase()函数比较字符串strCom1与字符串strCom2是否相等。
String strCom1="MN";
String strCom2="mn";
boolean strB= strCom1.equalsIgnoreCase(strCom2);
典型应用 equals方法和equalsIgnoreCase方法都是应用十分广泛的方法,两者之间的区别为equals方法在比较的过程中严格区分大小写,而equalsIgnoreCase方法在比较的过程中忽略大小写。
扩展资料
public class Test{
public static void main(String args[]){
String Str1= new String("runoob");
String Str2= Str1;
String Str3= new String("runoob");
String Str4= new String("RUNOOB");
boolean retVal;
retVal= Str1.equals( Str2);
System.out.println("返回值="+ retVal);
retVal= Str3.equals( Str4);
System.out.println("返回值="+ retVal);
retVal= Str1.equalsIgnoreCase( Str4);
System.out.println("返回值="+ retVal);
}
}
参考资料:百度百科 equals(电脑编程语言)
三、equals()方法重写
String的equals()方法的重写是写在java.lang.String里面的,不是在这里,这里只是个示意例子,让你比较==和 equals方法的不同
=====================这是String中重写后的equals()方法
/**
* Compares this string to the specified object. The result is{@code
* true} if and only if the argument is not{@code null} and is a{@code
* String} object that represents the same sequence of characters as this
* object.
*
*@param anObject
* The object to compare this{@code String} against
*
*@return{@code true} if the given object represents a{@code String}
* equivalent to this string,{@code false} otherwise
*
*@see#compareTo(String)
*@see#equalsIgnoreCase(String)
*/
public boolean equals(Object anObject){
if(this== anObject){
return true;
}
if(anObject instanceof String){
String anotherString=(String)anObject;
int n= count;
if(n== anotherString.count){
char v1[]= value;
char v2[]= anotherString.value;
int i= offset;
int j= anotherString.offset;
while(n--!= 0){
if(v1[i++]!= v2[j++])
return false;
}
return true;
}
}
return false;
}
============================================
如ls所说,Object类的equals方法比较的是hashCode,如果String在没有重写equals的情况下
s1.equals(s2)返回应该是false,但是事实是它返回的是true,这就是书中所说的String的equals方法已经被重写
====================为了更深刻的说明,我们来重写下你的这个例子中MyValue的equals的方法,然后你和你现在的例子比较一下就知道了
public class OperatorsAndExpressions{//操作和表达
/**
*@param args
*/
void equalsMethod2(){
String s1=new String("hello");
String s2=new String("hello");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
class MyValue{//内部类,是用户自己定义的类因此,类MyValue的equals()方法是从
int i;//Object类继承的,其功能仍然是比较两个操作数是否是同一个对象
//为了更深刻说明重写equals方法的作用,我们来这里重写一下equals
@Override
public boolean equals(Object o){
if(this== o){
return true;
}
if(o instanceof MyValue){
if(((MyValue)o).i== this.i){
return true;
}
}
return false;
}
}
MyValue v1=new MyValue();
MyValue v2=new MyValue();
v1.i=v2.i=2003;
System.out.println(v1.equals(v2));
}
public static void main(String[] args){
// TODO Auto-generated method stub
OperatorsAndExpressions OperAndExp=new OperatorsAndExpressions();
//一元算术运算符的运用
OperAndExp.equalsMethod2();
}
}
=============================
原例子的运行结果
false
true
false
--------------改写后的运行结果
false
true
true
四、java中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()方法:
classequalsDemo{
publicstaticvoidmain(Stringargs[]){
Strings1="Hello";
Strings2="Hello";
Strings3="Good-bye";
Strings4="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
文章分享到这里,希望我们关于equalsIgnoreCase() 方法和java中equalsignorecase怎么用的内容能够给您带来一些新的认识和思考。如果您还有其他问题,欢迎继续探索我们的网站或者与我们交流,我们将尽力为您提供满意的答案。