簡體   English   中英

為什么System.out.println()不打印字符串

[英]Why System.out.println() doesn't print the string

public class Main {
    public static void main(String[] args) {
        String str1 = new String("Haseeb"); 
        String str2 = new String("Haseeb");
        System.out.println("str1==str2" + str1==str2  );
    }
}
  • 輸出為“ false”
  • 我期望“ str1 == str2 false”

==運算符的優先級低於+ ,因此+首先執行。

"str1==str2" + str1產生"str1==str2Haseeb"

然后==執行,並且"str1==str2Haseeb""Haseeb"str2 )不是同一對象,因此打印false

您可以添加括號以闡明所需的操作順序。

System.out.println("str1==str2 " + (str1==str2)  );

這應該顯示str1==str2 false

(a + b == c)求值為(a + b) == c ,而不是a + (b==c) ,因為+優先級高於== 否則算術將不起作用。

您所擁有的等同於:

System.out.println( ("str1==str2" + str1) ==str2  );

並且("str1==str2" + str1)不等於str2 ,因此您輸出false

您可能的意思是:

System.out.println("str1==str2 " + (str1==str2));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM