Wczytywanie linii z przerwą

0

Mam taki kod:

 static Jumper dodajswoj(){
	Jumper on= new Jumper();
        System.out.print("Podaj Imie: ");
        on.setimie(s.nextLine());
        System.out.print("Podaj Nazwisko: ");
        on.setnazwisko(s.nextLine());
        System.out.print("Podaj dlugogosc skoku: ");
        on.setskok(s.nextInt());
	return on;
    }

I kiedy go uruchomię uzyskuje niespodziewanie taki efekt:

Podaj Imie: Podaj Nazwisko: <Tutaj wpisuje ;/
Podaj dlugogosc skoku: Atu skok

A chciałbym najpierw wpisać Imie potem Nazwisko.
Jak zrobić aby najpierw zapytało o Imie a potem o Naziwsko, co źle zrobiłem?
Proszę o pomoc.

PS: s to obiekt klasy Scanner.

0

Napisz jeszcze co wywołujesz przed tą funkcją, jeśli nie było to s.nextLine() a coś innego na s, to to może być problem.

0

Tak to wywołuje :P.

ilosc = s.nextInt();
for(int i=0; i<ilosc; i++){
	tab.add(dodajlos());
}
1

Pewnie przed tą pętlą wywołujesz coś w stylu:
s.NextInt();
więc jak podasz przed pętlą:
s.NextLine();
to jakoś będzie działać.

1

Jeśli masz linię z liczbą to nextInt nie przejdzie ci do nastepnej linii, musisz dać nextInt a potem nextLine, żeby przeszło.

0

Za dużo problemów to robiło więc dodałem osobny skaner dla liczb, zaś ten poprzedni został dla ciągów znaków.

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