Witam, mam problem z przedstawieniem danych z pliku .txt w formie 2-wymiarowej tablicy albo arraylist i odczytu poszczegolnych wartosci z tej tablicy.
Chcialbym dostawac sie do tych wartosci poprzez indeksy typu: tablica[i][j].
Z czym dokładnie masz problem? Wczytaj najpierw całą tablice a potem operuj na niej wewnątrz programu.
Mam taki kod:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Uczacy {
public static void main(String[] args) throws FileNotFoundException, IOException {
String line = null;
List<String[]> list = new ArrayList<String[]>();
BufferedReader reader = new BufferedReader(new FileReader("u.txt"));
while ((line = reader.readLine())!=null) {
list.add(getArray(line));
}
reader.close();
for (String[] stringArr : list) {
for(String str : stringArr){
System.out.print(str+" ");
}
System.out.println("");
}
}
private static String[] getArray(String s){
String[] array = s.split("\s");
return array;
}
}
I chcialbym dostac sie do konkretnej wartosci, ale nie wiem jak przekonwertowac string na float i przedstawic jako tablice floatow
masz wiele możliwości a mianowicie:
- czytanie linia po linii i "cięcie: danych metodą String.split(" ");
- użycie obiektu np. Scanner i czytanie wartości liczbowych metodą nextInt() np.
konwertowanie Stringa a float
float i = Float.parseFloat(String);
nie
będzie to odczytana pojedyncza liczba z pliku txt.
tu masz przykład czytania liczb i wyświetlanie ich w konsoli
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
/**
* Created by Rafał on 05.11.2016.
*/
public class Main {
public static void main(String[] args) {
File file = new File("plik.txt");
Scanner in = null;
try {
in = new Scanner(file);
while (in.hasNext()) {
int i = in.nextInt();
System.out.println(i);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
in.close();
}
}
wystarczy dodać albo dodawanie do tablicy (jeśli wiemy jakiej wielkości ma być lub np. ArrayList<Integer>
nie odp w komentarzach...
poczytaj o innych metodach klasy Scanner a na pewno coś się znajdzie
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
File file = new File("u.txt");
Scanner in = null;
try {
in = new Scanner(file);
while (in.hasNext()) {
String i = in.nextLine();
System.out.println(i);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
in.close();
}
}
W jaki sposob moge sie odniesc do poszczegolnych elementow. To znaczy jak moge przekonwertowac stringi na floaty jako tablice 2-wymiarowa. Program mi wyswietla dwuwymiarowa tablice stringow. A chcialbym, zeby mi wyswietlal 2-wymiarowa tablice floatow. Bo po wypisaniu dowolnego mam jakas wartosc string typu @12323d