申し訳ありませんが、タイトルが意味をなさないが、私はそれを言葉にする方法を知らなかった。charに値がない場合、StringIndexOutOfBoundsExceptionを回避するにはどうすればよいですか?
問題:
私は、ユーザから、B、C、Dのいずれかを取得する複数の選択肢のクイズゲームを作ってるんです。これは彼らが言われたようにしても問題ありませんが、何も入力せずにちょうどenterを押すとStringIndexOutOfBoundsExceptionが発生します。私はなぜこれが起こっているのか理解していますが、私はJavaには新しく、修正する方法は考えられません。私がこれまで持って何
:
System.out.println("Enter the Answer.");
response = input.nextLine().charAt(0);
if(response == 'a')
{
System.out.println("Correct");
}
else if(response == 'b' || response == 'c' || response == 'd')
{
System.out.println("Wrong");
}
else
{
System.out.println("Invalid");
}
あなたがののcharAt(0)の値を取ることができないため、プログラムは、ユーザーが何も場合、コードの2行目を過ぎてそれを作ることはありませんもちろん、空のString私が探しているのは、レスポンスがヌルであるかどうかをチェックするもので、そうであれば、再度質問してユーザーに質問してください。
ご回答ありがとうございます。
'input'は' java.util.Scanner'型であると仮定します。その場合、 'null'ではなく空のstring_を実際に返します。 – DaoWen
はい、空のStringになります。そのため、 'input.nextLine()。charAt(0);'はStringIndexOutOBoundsExceptionを生成します。 – jlordo