无法在java中一起打印字符串和布尔值

时间:2019-08-24 15:01:21

标签: java

public class Main
{
    public static void main(String[] args) {
        final String man1="All man are created equal:27";
        final String man2="All man are created equal:"+man1.length();
        System.out.print("All man are created equal:"+man1==man2);
    }
}

为什么只打印false而不打印整个print语句。

2 个答案:

答案 0 :(得分:1)

由于Operator Precedence

.clip { overflow: hidden; width: 160px; height: 160px; } .clip img { margin-top: -48px; margin-left: -48px; }<div class="clip"> <img src="http://raw.communitydragon.org/pbe/game/assets/loadouts/regalia/crests/prestige/prestige_crest_lvl_200.png"> </div>之下,因此首先它将评估字符串连接(==),然后计算其相等性(+

订单将是:

  1. +:“所有人的创造力相等:” + man1 =>“所有人的创造力平等:所有人创造力平等:27”
  2. ==:“所有人的创造力相等:所有人的创造力相等:27” == man2 =>假
  3. +

奖金使用==比较字符串(对象)

System.out.println(false)

输出

equals

答案 1 :(得分:0)

问题出在这个陈述中-

 System.out.print("All man are created equal:"+man1==man2); 

此处会生成一个由s1All man are created equal:串联而成的新字符串(例如man1)。
现在您有两个引用,分别是字符串s1man1
之后,将比较这两个字符串引用-s1man2

两个引用(s1man2)都不相同,您会得到错误的答案。