0

OK、私はゲームの最終段階にいます。それから皆さんをプレイに招待します。決して完璧ではありませんが、Java の進歩における大きなマイルストーンです。したがって、私のコードでは、パズル クラスを呼び出して、パズル クラスでequalsIgnoreCase提供されたプライベート変数ソリューションのユーザーによって与えられたソリューションかどうかを確認しています。一致する場合は true を返し、一致しない場合は false を返します。テスターでは、true の値が返された場合、I was right と出力され、false が返された場合は間違っていると出力されます。問題は、正しく入力したことですが、間違っていることがわかります。なんで?

パズル:

    public boolean solvePuzzle(String answer)
    {
        if(this.solution.equalsIgnoreCase(answer))
        {
            return true;
        }
        else
        {
            return false;

        }

    }

}

パズルテスター:

    if(choice==2)
   {
        System.out.println("Please solve the puzzle");
        input.nextLine();
        String answer=input.next();
        answer=answer.toUpperCase();
        game.solvePuzzle(answer);

        if(game.solvePuzzle(answer)==true)
        {
        System.out.println("That is correct");
        }
        else
        {
        System.out.println("You are wrong");
        }
        }


        }
4

2 に答える 2

1

わかった。解決策のヒント: Scanner クラスの javadoc をよく読んでください。特に、デフォルトの区切り文字が何であるかを説明している部分と、next()メソッドのドキュメントをよく読んでください。次に、解決策を見て、デフォルトの区切り文字と関係があるかどうかを自問してください。

確認するには、別のソリューションを選択して、何かが変わるかどうかを確認してください。また、比較する変数の値を出力して、実際に何が含まれているかを確認したり、Eclipse デバッガーの使用法を学んだりしてください。それほど難しいことではありません。Eclipse にはヘルプ ページがあると思います。

于 2013-02-18T23:02:43.143 に答える
0

あなたの問題は実際にはスキャナーを使用しているだけで、デフォルトでは空白を使用して区切ります。正しく設定するには、useDelimiter() メソッドを呼び出す必要があります。BufferedReader を使用できます。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in))
于 2013-02-18T23:08:59.433 に答える