[英]The content inside double quotes is not printing to System.out
在這個程序中,我使用了System.out.println
雙引號內的內容沒有打印出來?
public class Demo1 {
public static void main(String[] args) {
String s1 = new String("suresh");
String s2 = "suresh";
System.out.println("s2==s1::"+s2==s1);
}
}
預期輸出: s2==s1::FALSE
實際輸出: FALSE
由於運算符優先級, +
運算符的優先級高於==
運算符。
這個表達式: "s2==s1::"+s2==s1
與:( ("s2==s1::" + s2) == s1
換句話說,它檢查"s2==s1::" + s2
是否等於s1
,然后打印該比較的結果(這是false
)。
試試這個:
System.out.println("s2==s1::" + (s2 == s1));
這樣做
System.out.println("s2==s1::"+s2==s1);
和做的一樣
System.out.println(("s2==s1::"+s2)==s1);
由於運算符的優先級: +
運算符的優先級高於==
運算符。
所以你只會得到true
或false
因為你將字符串文字s2==s1::
與變量s2
AND連接起來然后將該引用與變量s1
進行比較
使用括號將解決問題
將s2==s1
放入括號中以更改運算符的優先級。
System.out.println("s2==s1::"+(s2==s1));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.