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()
可以比较两个对象的内容。我觉得自己太笨了,谢谢。我真的知道我应该用这个,我不知道为什么我没有或没有看到这个。。。