Wczytywanie linii z przerwą

Wczytywanie linii z przerwą
Kandif
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 231
0

Mam taki kod:

Kopiuj
 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.

Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
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.

Kandif
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 231
0

Tak to wywołuje :P.

Kopiuj
ilosc = s.nextInt();
for(int i=0; i<ilosc; i++){
	tab.add(dodajlos());
}
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
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ć.

Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
1

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

Kandif
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 231
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.