Przepraszam, jeśli tytuł nie miał sensu, ale nie wiedziałem, jak to wymówić.Jak uniknąć wyjątku StringIndexOutOfBoundsException, gdy char nie ma wartości?
Problem:
Robię wielokrotnego wyboru quiz, który pobiera A, B, C lub D z użytkownikiem. Nie ma problemu, jeśli robią tak, jak im się mówi, jednak jeśli nic nie wpisują i po prostu wciskam enter, otrzymuję wyjątek StringIndexOutOfBoundsException. Rozumiem, dlaczego tak się dzieje, ale jestem nowy w Javie i nie mogę wymyślić sposobu, aby to naprawić.
Co mam tak daleko:
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");
}
Oczywiście program nigdy nie będzie go obok drugiej linii kodu, jeśli użytkownik wpisze nic, ponieważ nie można przyjąć charAt (0) wartość pusty ciąg. To, czego szukam, to coś, co sprawdzi, czy odpowiedź jest pusta, a jeśli tak, zapytaj wróć i ponownie zadaj pytanie użytkownikowi.
Z góry dziękuję za wszelkie odpowiedzi.
Zakładam, że 'input' jest typu' java.util.Scanner'. Jeśli tak jest, wówczas zwracałby pusty ciąg _ zamiast "null". – DaoWen
Tak, będzie to pusty ciąg. Dlatego 'input.nextLine(). CharAt (0);' wygeneruje StringIndexOutOBoundsException – jlordo