Witam, mam taki problem, wczytuję z pliku tekst typu Jan Andrzej Kowalski, Marian Stefan Nowak itp. i chcę potem stworzyć obiekt, gdzie pierwsze i drugie imię oraz nazwisko tworzą ten właśnie obiekt, jednak wczytywanie pliku odbywa się linijka po linijce i fullName zapisywane jest do tablicy stringów, a rozdzielenie na te trzy składowe odbywa się przy pomocji funkcji indexOf, która nie działa na elementy tablicy. Jak to obejść? Jest jakiś inny sposób na rozbicie tego wyjściowego stringa na te trzy inne?
public class Test {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
int n;
System.out.print("rozmiar tablicy: ");
n = in.nextInt();
User tab[] = new User[n];
String nazwa_pliku = "c:/plik.txt";
CzytajPlik plik = new CzytajPlik(nazwa_pliku);
for(int i = 0; i<n; i++)
{
String[] fullName = plik.OtworzPlik();
String name = fullName.substring(0, fullName.indexOf(' '));
String secondName = fullName.substring(name.length() +1, fullName.lastIndexOf(' '));
String lastName = fullName.substring(name.length() + secondName.length() + 2, fullName.length());
User u = new User(name, secondName, lastName);
tab[i] = u;
}
for(int i = 0; i<n; i++)
{
tab[i].print();
}
}
}
public class CzytajPlik {
private String sciezka;
public CzytajPlik(String plik_sciezka)
{
sciezka = plik_sciezka;
}
public String[] OtworzPlik() throws IOException {
FileReader fr = new FileReader(sciezka);
BufferedReader czytajTekst = new BufferedReader(fr);
int liczbaWierszy = CzytajLinie();
String[] tekstDane = new String[liczbaWierszy];
int i;
for(i=0; i < liczbaWierszy; i++){
tekstDane[i] = czytajTekst.readLine();
}
czytajTekst.close();
return tekstDane;
}
int CzytajLinie() throws IOException {
FileReader plik_do_czytania = new FileReader(sciezka);
BufferedReader bf = new BufferedReader(plik_do_czytania);
String linie;
int liczbaLinii = 0;
while((linie = bf.readLine()) != null){
liczbaLinii++;
}
bf.close();
return liczbaLinii;
}
}