JAVA中字符串的比較
代碼中:
String str1="hello";
String str2="imooc";
System.out.println("str1等于str2:" + (str1==str2));
是可以輸出結(jié)果:str1等于str2:false
C中比較字符串一般會(huì)調(diào)用函數(shù)strcmp();,百度了JAVA中一般也會(huì)調(diào)用equals()方法,提及到字符串是對(duì)象類型和方法,不細(xì)究。看到后面再回頭來自我解答。
而代碼中==運(yùn)行成功,是可以這樣比較還是IDE將就著執(zhí)行成功了,回頭自我解答。
2015-12-09
可以這樣比較,但字符串比較用==表示的是地址的比較,指向同一對(duì)象才返回true,而equals是比較內(nèi)容的
2015-12-09
2015-12-09
代碼
public class helloworld{
?? ?public static void main(String[] args){?? ??? ?
?? ??? ?String str1= new String("hello");
?? ??? ?String str2= new String("hello");
?? ??? ?System.out.println(str1==str2);
?? ??? ?String str3="hello";
?? ??? ?String str4="hello";
?? ??? ?System.out.println(str3==str4);
?? ?}
}
結(jié)果:false
????????? true
大概能意會(huì)==對(duì)于地址的比較了。
但如果直接定義str而不是用new,不同的字符串地址竟然是一樣的。對(duì)于new的用法還是要回頭來看。
2015-12-09
String str1= new String("hello");
String str2= new String("hello");
用== 和 equals 分別試試就知道了
2015-12-09
樓上正解
2015-12-09
有這樣的精神很好,有問題后面大家可以一起討論