Tut mir leid, wenn der Titel keinen Sinn ergeben hat, aber ich wusste nicht, wie ich ihn formulieren soll.Wie vermeide ich StringIndexOutOfBoundsException, wenn Char keinen Wert hat?
Das Problem:
Ich mache ein Quiz-Spiel Multiple-Choice, die entweder a, b, c oder d von dem Benutzer erhält. Dies ist kein Problem, wenn sie tun, was ihnen gesagt wird, aber wenn sie nichts tippen und einfach Enter drücken, bekomme ich eine StringIndexOutOfBoundsException. Ich verstehe, warum das passiert, aber ich bin neu in Java und kann mir keinen Weg vorstellen, es zu reparieren.
Was ich habe, so weit:
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");
}
Natürlich ist das Programm wird es nie die zweite Zeile des Codes machen vorbei, wenn der Benutzer nichts, weil Sie nicht den charAt nehmen (0) Wert eine leere Zeichenfolge. Was ich suche, ist etwas, das prüft, ob die Antwort null ist, und wenn ja, frage zurück und stelle die Frage erneut an den Benutzer.
Vielen Dank im Voraus für alle Antworten.
Ich nehme an, 'Eingang' ist vom Typ' java.util.Scanner'. Wenn dies der Fall ist, würde es tatsächlich eine _empty-Zeichenkette_ anstatt "null" zurückgeben. – DaoWen
Ja, es wird der leere String sein. Deshalb wird 'input.nextLine(). CharAt (0);' eine StringIndexOutOBoundsException erzeugen – jlordo