System.out.println,带有+分隔的参数,不打印完整的输出,也不产生任何错误[重复]

问题描述 投票:0回答:1

我有一个非常简单的程序来比较字符串:

   String s1 = "abc";
   String s2 = "abc";

   System.out.println(s1==s2 + "\t" + s1.equals(s2));

我希望输出为:true true但我得到:false为什么呢?到底发生了什么以及如何解决这个问题?

java string equals println
1个回答
3
投票

+的优先级高于==

因此,println()内部的表达式正在解析为此:

s1 == (s2 + "\t" + s1.equals(s2));

要解决,只需添加括号以固定操作顺序。

System.out.println((s1 == s2) + "\t" + s1.equals(s2));
© www.soinside.com 2019 - 2024. All rights reserved.