0

ソケットから1行を読み取るコードを作成しました。
行が「さようなら」の場合は、「nice」を出力します。なんらかの理由で動作しませんが、条件なしで入力を出力しようとしましたが、「さようなら」と表示されました。

これは私のコードです

                String input = null;
                if (socket.getInputStream().available() > 0)                    
                    input = in.readLine();                                                                  

                if (input != null)
                {
                    input = input.trim();
                    if (input == "bye")
                        out.println("nice");

                    out.println(input);
                }
4

3 に答える 3

8

文字列を比較するには、String#equals()ではなく、を使用します。==

于 2012-05-10T18:08:40.140 に答える
0
if (input != null)
                {
                    input = input.trim();
                    if (input.equals("bye"))
                        out.println("nice");

                    out.println(input);
                }

文字列のequals() 内容を比較します。

于 2012-05-10T18:09:32.033 に答える
0

あなたはこれを言うならあなたの内面が欲しいです:

if (input.equals("bye"))

それ以外の

if (input == "bye")

==実際には参照オブジェクト(ポインタのようなもの)を比較しており、文字列がインターンされているときに機能する場合がありますが、それは別のトピックです。使用してください.equals()

于 2012-05-10T18:10:43.617 に答える