我有一个非常简单的程序来比较字符串:
String s1 = "abc";
String s2 = "abc";
System.out.println(s1==s2 + "\t" + s1.equals(s2));
我希望输出为:true true
但我得到:false
为什么呢?到底发生了什么以及如何解决这个问题?
+
的优先级高于==
。
因此,println()
内部的表达式正在解析为此:
s1 == (s2 + "\t" + s1.equals(s2));
要解决,只需添加括号以固定操作顺序。
System.out.println((s1 == s2) + "\t" + s1.equals(s2));