为什么下面两个代码会有不同的输出?

时间:2019-07-30 10:28:16

标签: java string

下面的程序输出false

Deleted

并且此代码输出为真

    String s1="a";
    String s2="b";
    String s3=s1+s2;
    String s4="ab";

    if(s3==s4)
    {
        System.out.println("true");
    }
    else
    {
        System.out.println("false");
    }

第一种情况下的输出不正确吗?与创建字符串s4 =“ ab”时一样,字符串常量池中已经存在一个值为“ ab”的对象。

1 个答案:

答案 0 :(得分:3)

在Java中,您想使用.equals()而不是==来比较字符串。请尝试以下方法。

String s1="a";
String s2="b";
String s3=s1+s2;
String s4="ab";

if(s3.equals(s4))
{
    System.out.println("true");
}
else
{
    System.out.println("false");
}