java:input / if语句出错

时间:2012-05-29 15:45:22

标签: 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”时,它会将我带到else情况,因此直接指向loginToClient方法。这是怎么回事;是不同编码中的“y”还是什么?

c是一个控制台。

3 个答案:

答案 0 :(得分:1)

比较java中使用等号的字符串,如下所示:

...
if (newusr.equals("y"))
...

答案 1 :(得分:0)

为什么不进行if(("y").equals(newusr))检查?

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

答案 2 :(得分:0)

代码newusr == "y"会将newusr变量的内存位置与"y"进行比较。哪个会失败。

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