java字符串比較是否都可直接使用==?


java字符串比較,兩個字符串相不相等,直接用==來判斷可以嗎?或者判斷兩個字符串不相等,直接用!=?

不能

兩個對象進行比較,如果使用==符號,那么比較的是這兩個對象的“引用”(類似C語言中指針的概念)。字符串比較,通常情況下比較的是字符串的值而非引用,不同的“引用”是可以對應相同值的,如果這時候用==比較,得出的結論是不相等,但是實際上它們的值是相等的。同理,不相等也是一樣,如果是用!=來判斷,判斷的是字符串的引用,如果兩個字符串的值是相同的,它們的引用也不相同,進到判斷的時候,就會判斷為不相等,其實字符串的值是相等的

所以,比較字符串的值,一般使用equals()進行比較

String a = new String("abc");
String b = new String("abc");
a == b; //false
a.equals(b) // true

if(a!=b){

a和b字符串的值是abc,它們的引用也不同,此時進到這個分支,如果是想判斷字符的值,那么就出問題了

}

if(!(a).equals(b)){

這個時候才是根據字符串的值,來判斷這兩個字符串的值,是否相同

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM