java println问题

mah*_*ati 1 java string equality operators operator-precedence

可能重复:
如何比较Java中的字符串?
什么是".equals和=="之间的区别

大家好,

System.out.println()用字符串以不同的方式表现.任何人都可以解释原因

请参阅以下代码段

String a ="hello"
String b ="hello"

System.out.println("a==b"+"is"+a==b)
Run Code Online (Sandbox Code Playgroud)

我希望这可以打印'a==b is true',但它只是打印false,我不知道为什么.

Bar*_*ers 8

打印一个false,因为您没有对布尔表达式进行分组.

表达方式:

"a==b"+"is"+a==b
Run Code Online (Sandbox Code Playgroud)

被评估为

("a==b"+"is"+a) == (b)
Run Code Online (Sandbox Code Playgroud)

虽然你想让它做一个字符串连接:

"a==b"+"is"+ (a==b)
Run Code Online (Sandbox Code Playgroud)

也就是说,你不应该==像其他人指出的那样使用字符串.