JAVA中字符串的比較
代碼中:
String str1="hello";
String str2="imooc";
System.out.println("str1等于str2:" + (str1==str2));
是可以輸出結果:str1等于str2:false
C中比較字符串一般會調用函數strcmp();,百度了JAVA中一般也會調用equals()方法,提及到字符串是對象類型和方法,不細究??吹胶竺嬖倩仡^來自我解答。
而代碼中==運行成功,是可以這樣比較還是IDE將就著執行成功了,回頭自我解答。
2015-12-09
可以這樣比較,但字符串比較用==表示的是地址的比較,指向同一對象才返回true,而equals是比較內容的
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);
?? ?}
}
結果:false
????????? true
大概能意會==對于地址的比較了。
但如果直接定義str而不是用new,不同的字符串地址竟然是一樣的。對于new的用法還是要回頭來看。
2015-12-09
String str1= new String("hello");
String str2= new String("hello");
用== 和 equals 分別試試就知道了
2015-12-09
樓上正解
2015-12-09
有這樣的精神很好,有問題后面大家可以一起討論