Tworzenie obiektu ze String Buffera

0

Witam,
Nazwa może być myląca, bo nie za bardzo wiedziałem jak nazwać.

Problem mam następujący. Posiadam plik test.txt, który zawiera powiedzmy takie dane jak imię, nazwisko, rokurodzenia. Przykład:

"Ania Mazurek 1999
Marta Kacprzak 1988"

Odczytuje plik scannerem, a następnie wrzucam przez String Buffer do zmiennej "str". Następnie posiadam dwie klasy. Jedną klasę Osoba z polami String imie, String nazwisko. I drugą klasę z prywatnym polem int rokUrodzenia. Przy pomocy konstruktorów próbuję stworzyć metodę, która zwraca obiekt, abym mógł wrzucić te obiekty do tablicy. Problem polega w tym, że w momencie, gdy chcę stworzyć metodę, to konstruktor wymaga podania argumentów. jak poniżej

public static Student metoda(){
return new Student(String: imie, String: nazwisko, int: rokUrodzenia)
}

Teraz zastanawiam się jak należy napisać "metodę", dzięki której na przykład będzie wiedział, że z odczytanych danych "Ania" to imię, albo że "Mazurek" to nazwisko. Tak abym mógł zrobić coś na zasadzie:

public static Student metoda(){
return new Student(imie(), naziwsko(), rokUrodzenia());
}

Osobiście zastanawiam się nad StringTokenizerem, albo do String Buffera użyć split().

0

Jeżeli możesz zapisać te dane w formacie CSV, JSON czy czymkolwiek gdzie będziesz miał jasno określone co jest imieniem, nazwiskiem etc to twój problem się rozwiąże, inaczej będziesz musiał uwzględnić, że ktoś może miec 2 imiona, a i nazwisko może mieć więcej niż jedno słowo (nazwiska, które zawierają spacje)

0

Napisz parser.

0

Pobierasz z pliku całą linię zapisując ją np. do zmiennej String line
Następnie dzielisz tą linię metodą split. Funkcja ta ma implementację przyjmującą w argumencie znak, który ma być separatorem poszczególnych łańcuchów znaków, a wynik zapisuje w tablicy, czyli:
line.split(" ")

Całość możesz wrzucić do listy, np:
List<String> wordList = new ArrayList<>(Arrays.asList(line.split(" ")))

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