Cześć,
napisałem metodę która wczytuje dane, na temat drużyn, zapisane w pliku .txt w formacie:
Nazwa
Liczba zwycięstw
Imię Zawodnika 1
Nazwisko Zawodnika 1
Imię Zawodnika 2
Nazwisko Zawodnika 2
pauza
Nazwa
Liczba zwycięstw
Imię Zawodnika 1
Nazwisko Zawodnika 1
Imię Zawodnika 2
Nazwisko Zawodnika 2
Imię Zawodnika 3
Nazwisko Zawodnika 3
pauza
Mój problem polega na tym, że drużyny mogą mieć różną liczbę zawodników. Dlatego dodałem "pauza", aby program wiedział, że jeśli pobierze takiego Stringa to ma przestać wczytywać dane zawodników i zacząć czytać dane kolejnej drużyny. Nie wiem gdzie jest błąd w moim kodzie.
Ps. Problemem jest także konwersja pobranej liczby zwycięstw, która jest Stringiem na typ int. Czy mogę to wykonać za pomocą Integer.valueOf()?
public void OdczytDruzyny(String nazwa) throws FileNotFoundException{
try (Scanner odczyt = new Scanner(new File(nazwa))) {
while(odczyt.hasNext()){
Druzyna tmp=new Druzyna();
Druzyny.add(tmp);
tmp.setNazwa(odczyt.nextLine());
tmp.setPunkty(Integer.valueOf((odczyt.nextLine())));
while(!(odczyt.hasNext("pauza"))){
Zawodnik tmpz= new Zawodnik();
tmpz.setImie(odczyt.nextLine());
tmpz.setNazwisko(odczyt.nextLine());
tmp.dodajZawodnika(tmpz);
}
}
}
}
Konsola:
Exception in thread "main" java.lang.NumberFormatException: For input string: "Jagielonia"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at Klasy.Gra.OdczytDruzyny(Gra.java:118)
at projekt.Projekt.main(Projekt.java:19)