在这个程序中,我使用了System.out.println
双引号内的内容未打印?
public class Demo1 {
public static void main(String[] args) {
String s1 = new String("suresh");
String s2 = "suresh";
System.out.println("s2==s1::"+s2==s1);
}
}
预期输出:s2==s1::FALSE
实际输出:FALSE
答案 0 :(得分:8)
由于运算符优先级,+
运算符的优先级高于==
运算符。
此表达式:"s2==s1::"+s2==s1
与:("s2==s1::" + s2) == s1
换句话说,它检查"s2==s1::" + s2
是否等于s1
,然后打印该比较的结果(false
)。
请改为尝试:
System.out.println("s2==s1::" + (s2 == s1));
答案 1 :(得分:5)
这样做
INTERNAL_IPS = ('127.0.0.1')
与做
相同System.out.println("s2==s1::"+s2==s1);
由于运算符的优先级:System.out.println(("s2==s1::"+s2)==s1);
运算符的优先级高于+
运算符。
因此,您只能获得==
或true
因为您将字符串文字false
与变量s2==s1::
连接起来然后将该引用与变量s2
进行比较
使用括号将解决问题
答案 2 :(得分:3)
将s2==s1
放入括号中以更改运算符'优先级。
System.out.println("s2==s1::"+(s2==s1));