• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java. Problem z scanner.nextInt()

0 głosów
90 wizyt
pytanie zadane 17 lutego w Java przez gab123 Mądrala (5,240 p.)
edycja 17 lutego przez gab123

Witam, mam sobie taki programik :

@SuppressWarnings("resource")
        Scanner odczyt = new Scanner(System.in);
int t = Integer.parseInt(odczyt.nextLine());
		
		for(;t>0;t--){
			
			int n = Integer.parseInt(odczyt.nextLine());
			
			for(int i = 0; i<n; i++){
				
				int liczba = odczyt.nextInt();
				
				System.out.println(liczba);
}
}

 

Wpisuje taki input :

3

5

1 2 3 4 5

I wszystko działa do momentu gdy wpisuje ostatnią piątke i klikam enter, w tedy pojawia mi się błąd :

Exception in thread "main" java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at konskurs_pseudomatematyczny.Main.main(Main.java:20)

Wskazuje na tą linie :

			int n = Integer.parseInt(odczyt.nextLine());

Sprawdzałam jednak że jak się usunie zawartość drugiej pętli wszystko działa.

Z góry dziękuje za pomoc.

2 odpowiedzi

+1 głos
odpowiedź 17 lutego przez Mateusz51 Stary wyjadacz (14,800 p.)
wybrane 17 lutego przez gab123
 
Najlepsza
Problem jest taki że nextInt() nie pobiera Ci z buffora znaku nowej lini. I gdy wywołujesz nextLine() scaner pobiera Ci właśnie ten znak nowej lini który nie może zostać sparsowany. Rozwiazaniem może być wstawienie miedzy 14 a 15 linijke pusty nextLine()
komentarz 17 lutego przez gab123 Mądrala (5,240 p.)
Dziękuje.
0 głosów
odpowiedź 17 lutego przez Codeboy Mądrala (6,470 p.)

Na pierwszy rzut oka wydaję się, że gdzieś pusty string jest przekazywany do parseInt i wyrzuca bład.
Zamień wszystkie:

Integer.parseInt(odczyt.nextLine());

na po prostu na 

odczyt.nextInt();

I nie powinno być problemów.

Podobne pytania

0 głosów
2 odpowiedzi 91 wizyt
pytanie zadane 17 stycznia w Java przez PejtaM Użytkownik (530 p.)
0 głosów
1 odpowiedź 47 wizyt
pytanie zadane 15 stycznia w Java przez dmn Nowicjusz (170 p.)
0 głosów
3 odpowiedzi 56 wizyt
pytanie zadane 4 listopada 2016 w Java przez anhydryt Początkujący (290 p.)

36,338 zapytań

73,077 odpowiedzi

140,926 komentarzy

16,921 pasjonatów

Przeglądających: 139
Pasjonatów: 13 Gości: 126

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...