Wie kann ich vermeiden, StringIndexOutOfBoundsException, wenn char hat keinen Wert?

Sorry, wenn der Titel keinen Sinn gemacht hat, aber ich wusste nicht wie ich zu Wort.

Das problem:

Mache ich ein multiple-choice-quiz-Spiel, das wird entweder a, b, c oder d von der Benutzer. Dies ist kein problem, wenn Sie tun, was Ihnen gesagt wird, aber wenn Sie nicht nichts eingeben und einfach enter drücken bekomme ich eine StringIndexOutOfBoundsException. Ich verstehe, warum dies geschieht, aber ich bin neu in Java und kann nicht denken Sie an einen Weg, um es zu beheben.

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 das Programm wird es nie schaffen, vorbei an der zweiten code-Zeile, wenn der Benutzer nichts, weil Sie nicht über die charAt(0); dieser Wert ein leerer String ist. Was ich Suche ist etwas, das überprüfen wird, wenn die Antwort null ist, und wenn ja, Fragen Sie zurück und bitten die Frage zu den Benutzer wieder.

Vielen Dank im Voraus für alle Antworten.

  • Ich gehe davon aus input ist der Typ java.util.Scanner. Wenn das der Fall ist, dann wäre es tatsächlich eine leere Zeichenfolge zurückgeben, anstatt null.
  • Ja, es wird die leere Zeichenfolge. Das ist, warum input.nextLine().charAt(0); generiert eine StringIndexOutOBoundsException
InformationsquelleAutor hashtag name | 2012-10-22
Schreibe einen Kommentar