1

タイトルとして、特定のキーワードを入力したときにループを終了させたい。

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

2つの質問:

  1. コマンドプロンプトから入力dohしても、ループを終了しません。

  2. 私が置くと、 +"buf != null"を押した場合にのみ機能します。何も入力しない場合(Enterキーを押すだけ)、ループを終了しません。CtrlZ

4

3 に答える 3

3

変化する:

buf != "doh"

に:

!buf.equals("doh")

そして読んでください:JavaString.equals対==

于 2012-09-22T22:32:51.853 に答える
2

equalsの代わりにメソッドを使用してください!=!=オブジェクトへの参照が同一でない場合にのみ、演算子はtrueを返します。メソッドequalは、文字列を文字ごとに比較します。

于 2012-09-22T22:33:05.953 に答える
2

文字列(および一般的なオブジェクト)を、プリミティブ( 、、など)に==のみ使用されると比較しないでください。オブジェクトの場合は、メソッドを使用します。intcharbooleanequals

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