• 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
1,487 wizyt
pytanie zadane 17 lutego 2017 w Java przez gab123 Mądrala (5,230 p.)
edycja 17 lutego 2017 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 2017 przez Mateusz51 Nałogowiec (28,180 p.)
wybrane 17 lutego 2017 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 2017 przez gab123 Mądrala (5,230 p.)
Dziękuje.
0 głosów
odpowiedź 17 lutego 2017 przez Codeboy Stary wyjadacz (12,120 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
0 odpowiedzi 1,180 wizyt
pytanie zadane 3 grudnia 2018 w Java przez MarioB Nowicjusz (120 p.)
0 głosów
1 odpowiedź 1,059 wizyt
pytanie zadane 21 lutego 2019 w Java przez Metarinda Użytkownik (740 p.)
0 głosów
1 odpowiedź 564 wizyt
pytanie zadane 30 sierpnia 2018 w Java przez michaljbjj Początkujący (460 p.)

93,772 zapytań

142,730 odpowiedzi

323,382 komentarzy

63,369 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...