Scanner, nieoczekiwane działanie

0

Witam, robię książkę telefoniczną w javie. Ta metoda powoduje, że za pierwszym razem w pętli odczyt z klawiatury imienia zostaje zignorowany. Dalej leci już normalnie. Dodam, że przy użyciu BufferedReader wszystko działa ok. Łapcie fragment kodu:

public void addFriends(int x, Scanner scanner) throws IOException {
		String imie, numer;
		for(int i = 0; i < x; i++) {
			System.out.println("Podaj imię");
			imie = scanner.nextLine();
			System.out.println("Podaj numer");
			numer = scanner.nextLine();
			spisImion.add(imie); //LinkedList
			spisNumerow.add(numer);
		}
	}```
A to wynik:
`Ile kontaktów zamierzasz dodać?
2
Podaj imię
Podaj numer
1
Podaj imię
p
Podaj numer
12`
0

Pokaż wcześniejszy kod (tam, gdzie pytasz o liczbę kontaktów).

0

Może wrzucę od razu cały kod. Patrz metoda main case: 3.

import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

class Toolkit {
	List<String> spisImion = new LinkedList<>();
	List<String> spisNumerow = new LinkedList<>();
	
	public void showText(String... args) {
		for (int i = 0; i < args.length; i++) {
			System.out.println(args[i]);
		}
	}
	public void intro() {
		showText("Witaj, wybierz co chcesz zrobić.", "1. Wyświetl listę dostępnych kontaktów.",
				"2. Wyszukaj konkretny wpis po nazwie.", "3. Dodaj kontakt/y.", "4. Zamknij program.");
	}
	public void addFriends(int x, Scanner scanner) throws IOException {
		String imie, numer;
		for(int i = 0; i < x; i++) {
			showText("Podaj imię");
			imie = scanner.nextLine();
			showText("Podaj numer");
			numer = scanner.nextLine();
			spisImion.add(imie);
			spisNumerow.add(numer);
		}
		intro();
	}
}

public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		Toolkit toolkit = new Toolkit();

		toolkit.intro();
		char option;
		try {
			for (;;) {
				option = (char) System.in.read();
				switch (option) {
				case '1':
					toolkit.showText("1");
					break;
				case '2':
					toolkit.showText("2");
					break;
				case '3':
					toolkit.showText("Ile kontaktów zamierzasz dodać?");
					int iloscDodawanych = scanner.nextInt();
					toolkit.addFriends(iloscDodawanych, scanner);
					break;
				case '4':
					return;
				}
			}
		} catch (IOException e) {
		}
		scanner.close();
		toolkit.showText("end");

	}

}```
0

Dzięki, pomogło.

1 użytkowników online, w tym zalogowanych: 0, gości: 1