Podstawy w Javie

C9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

Witam. Mam pewien problem, mianowicie nie mam zielonego pojecia jak wczytac dane z pliku pod odpowiednie zmienne. Z calego zdania mam zrobic jakby 4 zmienne.
Przyklad:
w pliku:Jan Kowalski 17 20.8
imie=Jan
nazwisko=Kowalski
wiek=17
skutecznosc 20.8
Ktos wie jak to zrobic?? Z gory dzieki za pomoc :P

J1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 224
0

Najlepiej żebyś sam się pomęczył. Wtedy będzie największa satysfakcja. Ale nakieruję Ciebie. Jeśli tekst w pliku wygląda tak jak podałeś, czyli między wyrazami i '=' nie ma żadnych odstępów, to jedyna opcja pobierać linie, obcinać zmienną typu string metodą substring() i może jakimś licznikiem ładować do odpowiednich zmiennych. A gdybyś np. miał tam odstępy i wtedy nie musiałbyś obcinać tego tekstu, to może załadować plik do obiektu typu Scanner i wtedy czytać co odstęp i określić co który raz ma ładować tekst do zmiennej. To na szybko coś na yt. . Przerób sobie to z filmiku i będzie OK.

R1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 208
0

szukajka niedziała? Tutaj

GE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: EU/PL/KRK/TRZ
  • Postów: 15
0

Kilka luźnych uwag ode mnie:

  • Czytaj plik linia po linii (poszukaj, jest duuużo przykładów). Jeżeli zupełnie nie wiesz - coś można podpowiedzieć, ale warto najpierw spróbować zdobyć wiedzę samemu.
  • Pomoże Ci metoda split klasy String - rozbije wiersz według spacji i wpakuje wartości do tablicy. Wtedy już jesteś właściwie w domu - możesz przypisać wartości tablicy do zmiennych lub zrobić z nimi cokolwiek innego.
  • Jeżeli potrzebujesz zrobić z ciągu znaków liczbę, to każda podklasa Number ma jakąś metodę parse.

Powodzenia!

C9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

Dziekuje za wszelkie uwagi i rady. Wiadomo, jesli do czegos dojdzie sie samemu to dluzej mozna zapamietac jak to sie zrobilo :P

C9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

Niestety nadal nie wiem jak zrobic to zadanie. Jesli chodzi o substring to z tego co przeczytalem wczytuje ona litery jedna po drugiej a nie wszystkie na raz. Czytalem tez o fukncji StringTokenizer ale rowniez nie wiem jak sie tym poslugiwac. Zdanie jest juz wczytane ale dalsze pytanie, jak je podzielic i zapisac pod konkretne zmienne??

GE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: EU/PL/KRK/TRZ
  • Postów: 15
1

@chrupek97: Tak jak pisałem, w tym wypadku split to najprostszy sposób, żeby zrobić to, czego potrzebujesz :) StringTokenizer to starsza klasa, umiarkowanie wygodna w obsłudze, w dodatku jej używanie w nowym kodzie jest obecnie odradzane, z kolei substring pozwala wyciąć fragmenty ciągu znaków, pod warunkiem, że wiesz o jaki fragment Ci chodzi (czyli znasz indeks początkowy/końcowy) ;) więc w Twoim przypadku nie zda się na nic.

Poniżej króciutki przykład użycia split

Kopiuj
final String line="Jan Kowalski 17 20.8";
final String[] data=line.split("\\s+");
for(int i=0; i< data.length; i++) {
    System.out.println(String.format("data[%d]: %s", i, data[i]));
} 

Da to następujący wynik:

Kopiuj
data[0]: Jan
data[1]: Kowalski
data[2]: 17
data[3]: 20.8

Uwaga: użycie wywołania line.split(" ") też by zadziałało w tym konkretnym przypadku, ale użycie wyrażenia regularnego \s+ sprawia, że jeśli spacji będzie więcej (lub byłby to jakiś inny rodzaj białego znaku), program nadal zadziała prawidłowo.

Działaj i pytaj w razie czego.

C9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 31
0

Niestety nadal nie moge skonczyc tego programu. Ma on na celu pobrac dane osobowe z pliku i wypisac osoby ktorych dlugosc imienia jest wieksza od 3, nazwisko konczy sie na "ski" oraz osoba ta ma najwieksza skutecznosc. W momencie gdy chce skompilowac plik przy ifie zaznaczonym na czerwono pojawia sie zarowka z ostrzezeniem i komunikatem Invert if i Flip operands of the binary operator.

GE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: EU/PL/KRK/TRZ
  • Postów: 15
0

Ciężko patrząc na ten kod powiedzieć, co ten program właściwie próbuje zrobić (brzmi to trochę inaczej od tego, co pisałeś wcześniej). Poustawiaj breakpointy, użyj debuggera i sprawdź co dokładnie robi Twój program. Kto wie, może sam się zdziwisz ;)

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.