javaj:input/if语句出现故障

javaj:input/if语句出现故障,java,console,readline,if-statement,Java,Console,Readline,If Statement,以下代码块有轻微问题: newusr = c.readLine("New user? "); if (newusr == "y") { System.out.println("IF"); usnm = createNewUser(); usnm = loginToClient(); } else { System.out.println("ELSE"); usnm = loginToClient(); } 基本上,当我在提示符中输入单个字符“y”时,它会

以下代码块有轻微问题:

newusr = c.readLine("New user? ");
if (newusr == "y") {
    System.out.println("IF");
    usnm = createNewUser();
    usnm = loginToClient();
}
else {
    System.out.println("ELSE");
    usnm = loginToClient();
}
基本上,当我在提示符中输入单个字符“y”时,它会将我带到else案例,从而直接带到loginToClient方法。发生什么事;“y”是另一种编码还是什么

c是一个控制台。

如果((“y”).equals(newusr))并检查,为什么不做一个


如果不输入值,这也将避免出现
NullPointerException

要使用java中的字符串,请使用equals,如下所示:

...
if (newusr.equals("y"))
...
代码
newusr==“y”
将把
newusr
变量的内存位置与
“y”
进行比较。这将失败


您应该使用
.equals()
方法比较对象。

尝试将newusr输出到屏幕,您看到了什么?只是为了好玩,试着输出newusr的长度。您可能会感到惊讶。
=
比较了对一个对象的两个引用,即它们是同一个对象吗
.equals()
可以比较两个对象的内容。我觉得自己太笨了,谢谢。我真的知道我应该用这个,我不知道为什么我没有或没有看到这个。。。