1

作为标题,我希望它在输入特定关键字时退出循环。

try {
    buf = br.readLine();
    while (buf != "doh") {
        buf = br.readLine();
    }
}

两个问题:

  1. 当我doh从命令提示符输入时,它不会退出循环。

  2. 如果我"buf != null"说它只有在我按Ctrl+时才有效Z。如果我什么都不输入(只需按回车键)它不会退出循环。

4

3 回答 3

3

改变:

buf != "doh"

到:

!buf.equals("doh")

并阅读:Java String.equals 与 ==

于 2012-09-22T22:32:51.853 回答
2

使用equals方法而不是!=. 仅当对对象的引用不相同时,运算符!=才会返回 true。方法equal将逐个字符地比较字符串。

于 2012-09-22T22:33:05.953 回答
2

您不应该将字符串(和一般的对象)与==仅用于基元(intcharboolean)的字符串(和一般对象)进行比较。对于对象,您使用equals方法。

try {
    buf = br.readLine();
    while (! buf.equals("doh")) {
        buf = br.readLine();
    }
}
于 2012-09-22T22:34:27.133 回答