Konwersja zawartości pliku tekstowego na dwuwymiarową tablicę floatów

0

Mam problem z przedstawieniem 2-wymiarowej tablicy stringow na 2-wymiarowa tablice floatow. Chcialbym sie pozniej odnosic do tej tablicy floatow i wykonywac operacje na tej tablicy. Teraz nie moge tego zrobic bo sa to stringi.

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();
0

Wiesz z góry ile jest wierszy w pliku i ile liczb w wierszu?

0

Nie wiem, rozmiar bedzie dowolny. Wiadome jest jedynie, ze bedzie to 2-wymiarowa tablica.

1

To tablica jest kiepskim pomysłem.

        ArrayList<ArrayList<Float>> numbers = new ArrayList<ArrayList<Float>>();
        try
        (
            Scanner sc = new Scanner(new File("u.txt"));
        )
        {
            while(sc.hasNextLine())
            {
                ArrayList<Float> oneRow = new ArrayList<Float>();
                Scanner sc2 = new Scanner(sc.nextLine());
                while(sc2.hasNextFloat())
                {
                    oneRow.add(sc2.nextFloat());
                }
                numbers.add(oneRow);
            }
        }
        catch(Exception e)
        {
            System.out.println(e);
        }

Zadziała, jeżeli separatorem dziesiętnym liczb w pliku jest przecinek.

0

Separatorem dziesietnym w pliku .txt jest kropka.

0

To zamień

                Scanner sc2 = new Scanner(sc.nextLine());

na

                Scanner sc2 = new Scanner(sc.nextLine());
                sc2.useLocale(Locale.US);
0

A w jaki sposob moge sie odniesc do tej tablicy, zeby wykonywac operacje na liczbach. Chcialbym sie dostac np. do elementu [2][21].

0

Bo z tego co widze, to owszem przerabia mi tablice stringow na tablice floatow, ale moge sie odwolac jedynie to poszczegolnej linii

0

Żartujesz,

numbers.get(2).get(21);

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