Odczyt konkretnej kolumny z pliku txt

0

Potrzebuje odnaleźć konkretną wartość z pliku, w którym znajdują się zarówno liczby jak i litery. Załóżmy stringa, którego chcemy znaleźć to : aaa. W momencie znalezienia, dostajemy info o kolumnie jego występowania po czym pobieramy wszystkie wartości z tej kolumny i obliczamy iloczyn dla wszystkich liczb z tej kolumny, reszte stringów(wyrazow) pomijamy. Pomoże ktoś to zrobić? Długości wierszy mogą być różne. Przykładowy plik txt:

ccc,b,8,7,b;
5,6,f,g,bbb;
8,ccc,aaa,g,7,k,4;
7,m,44,t,we,6,b;

program powinien dać info, że aaa znajduje się w kolumnie numer 2(licząc od 0) po czym pobrać wartości : 8,f,aaa,44. Z liczb 8 i 44 jest liczony iloczyn.

0

Sparsuj to csv.
Ewentualnie skorzystaj z apache commons ale to overkill chyba

0

Po zapisie tego :
private static List<List<String>> records = new ArrayList<>();
System.out.println(records.get(0))
dostaje pierwszy wiersz macierzy. jest jakiś sposób aby odwołać się bezpośrednio do pojedynczego elementu w tym pierwszym wierszu?

0
Barbara486 napisał(a):

Po zapisie tego :
private static List<List<String>> records = new ArrayList<>();
System.out.println(records.get(0))
dostaje pierwszy wiersz macierzy. jest jakiś sposób aby odwołać się bezpośrednio do pojedynczego elementu w tym pierwszym wierszu?

records.get ( y ).get( x )

0
  1. Wczytaj ten plik w javie np Files.readAllLines (chyba, że masz powiedziane, że plik może byc kolosalnych rozmiarów, to wtedy musisz użyc innego sposobu)
  2. Powyższa metoda zapewni Ci liste stringów - tj. każdy wiersz z pliku to jeden string
  3. Następnie robisz splita po ",", co zapewni Ci rozdzielenie tych znaków w każdej linii.
  4. Przechodzisz po liniach posplitowanych i sprawdzasz czy jest w niej ciąg znaków który poszukujesz.
  5. Zapamiętujesz "wiersz" z listy oraz indeks tabeli po splicie, aby mieć kolumne, w której masz poszukiwany ciąg znaków.
  6. Mając kolumne, przechodzisz po posplitowanych danych i sprawdzasz czy dany obiekt da sie sparsowac na liczbe, jak tak to wymnażasz.

To tak w skrócie.

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