-1

以下代码块有一点问题:

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 是一个控制台。

4

3 回答 3

1

在java中使用equals来campare字符串,如下所示:

...
if (newusr.equals("y"))
...
于 2012-05-29T15:49:01.513 回答
0

你为什么不做一个if(("y").equals(newusr))检查?

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

于 2012-05-29T15:49:00.540 回答
0

该代码newusr == "y"会将newusr变量的内存位置与"y". 哪个会失败。

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

于 2012-05-29T15:56:23.717 回答