[英]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 );
}
}
==
運算符的優先級低於+
,因此+
首先執行。
"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.