下面首先来回顾一下,如果说现在要想判断两个int型变量是否相等,那么肯定使用“==”来完成,这个是由程序直接提供的相等的运算符。
范例:进行“==”比较
public class StringDemo {
public static void main(String args[]){
int x = 10;
int y = 10;
System.out.println(x == y);
}
}
但是String类实际上也牵扯到一个相等的判断问题,但是对于String类相等的判断也可以使用“==”,只不过判断的不准确而已,下面通过代码来观察。
范例:实现字符串的相等判断
public class StringDemo {
public static void main(String args[]){
String strA = "mldn";
String strB = new String("mldn");
System.out.println(strA == strB); //false
}
}
此时的比较并没有成功,所以发现虽然两个字符串对象的内容是相同的,但是“==”也无法得到准确的相等判断,那么这种情况下如果要想实现准确的字符串相等判断,那么可以使用String类中所提供的一个比较方法:
·字符串比较(有变形):public boolean equals(String str);
范例:利用equals()实现字符串比较
public class StringDemo {
public static void main(String args[]){
String strA = "mldn";
String strB = new String("mldn");
System.out.println(strA.equals(strB)); //true
}
}
面试题:请解释String比较中“==” 与 equals()区别?
- “==”:进行的是数值比较,如果用于对象比较上比较的是两个内存的地址数值;
- equals():是类所提供的一个比较方法,可以直接进行字符串内容的判断。