-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 で文字列を処理するには、次のように等号を使用します。

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

コードは変数newusr == "y"のメモリ位置を と比較します。どちらが失敗しますか。newusr"y"

メソッドを使用してオブジェクトを比較する必要があります.equals()

于 2012-05-29T15:56:23.717 に答える
0

なぜあなたはif(("y").equals(newusr))チェックをしないのですか?

NullPointerException値を入力しない場合 も回避されます。

于 2012-05-29T15:49:00.540 に答える