Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Lettura matrice di double da file di testo

    Ciao, sono nuovo qua e vole chiedere una cosa, che penso per molti sara` banale. Sto iniziando a programma in Java dopo averlo fatto per anni in VB.
    Devo leggere una matrice di double scritta su un file testo, memorizzarla in una variabile e usare i dati per fare dei calcoli. Quello che sono riuscito a fare fin ora e` questo:
    import java.io.*;
    import java.util.Scanner;
    public class LetturaFile
    {
    public static void main(String[] args)

    {

    try{
    Scanner scf = new Scanner(new File("info.txt"));
    // verifico che ci sia una linea da leggere
    // nel file con l’oggetto scf
    while (scf.hasNextLine())
    {
    String riga = scf.nextLine(); // leggo la linea
    System.out.println("RIGA: "+riga);

    }
    scf.close(); // alla fine chiudo lo Scanner



    }
    catch (FileNotFoundException e)
    { System.out.println("Il file non esiste");}

    }

    }


    Mi potete aiutare? il mio problema e memorizzare questi dati che stampo

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Lettura matrice di double da file di testo

    Originariamente inviato da formeppe
    Devo leggere una matrice di double scritta su un file testo, memorizzarla in una variabile e usare i dati per fare dei calcoli. Quello che sono riuscito a fare fin ora e` questo:

    Mi potete aiutare?
    Beh, quanto hai scritto è poco e incompleto. Innanzitutto puoi certamente usare Scanner per leggere le righe ma in genere è tipico/preferibile usare BufferedReader.

    Comunque a parte questo, dovresti precisare un po' di cose.

    1) Parli di matrice quindi immagino bidimensionale, giusto?

    2) E nel tuo file hai quindi N righe in cui ognuna contiene M valori decimali, giusto? Separati da che cosa? (es. spazio .... non so, non l'hai precisato) I valori sono formattati in che modo? (mi riferisco al separatore delle cifre decimali ... punto? virgola?)

    3) Alla fin fine cosa devi ottenere? Immagino un array double[][], appunto bidimensionale.

    4) Hai anche un "header", una linea iniziale che indica il numero di righe/colonne?? Perché se non ce l'hai, allora vuol dire che non sai a priori il numero di righe. E questo implica un certo tipo di approccio.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Beh innanzitutto grazie per la risposta. ecco rispondo subito alle tue domande:

    1) si e` una matrice bidimensionale;
    2) la separazione dei numeri e lo spazio; ed i valori decimali sono scritti dopo il punto metre per le magliaia nulla: 3252.123
    3)si, vorrei ottenere un array di double bidimensionale
    4)vorrei fare una cosa dinamica che andra bene per qualsiasi matrice di qualunque righe e colonne.

    Ti ringrazio di nuovo, sono nuovo di Java...e anzi se potresti consigliarmi anche qualcosa( siti o libri con esempi pratici) te ne sarei grato. Dovro' lavorare un po perche penso che il passaggio da vb a java non e tanto semplice

    g.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da formeppe
    1) si e` una matrice bidimensionale;
    2) la separazione dei numeri e lo spazio; ed i valori decimali sono scritti dopo il punto metre per le magliaia nulla: 3252.123
    3)si, vorrei ottenere un array di double bidimensionale
    4)vorrei fare una cosa dinamica che andra bene per qualsiasi matrice di qualunque righe e colonne.
    Allora l'approccio dovrebbe essere il seguente: visto che non si conosce a priori il numero di righe, si dovrebbe usare una collezione "espandibile", ad esempio un ArrayList, in cui in ogni elemento c'è un array double[].

    a) Si legge il file "a righe" (si può usare Scanner ma anche, meglio, BufferedReader)
    b) Per ogni riga si devono estrarre le singole sottostringhe dei valori. Si può fare con un StringTokenizer oppure con split() di String (non sono gli unici modi, comunque).
    Ogni stringa va "parsata" in double usando Double.parseDouble(). Si crea un array double[] e si inseriscono i valori.
    c) Si inserisce l'array double[] all'interno della collezione espandibile (ArrayList o simile).
    d) Alla fine, conoscendo il numero di righe, si istanzia un array double[][] e si assegnano in questo array gli array presenti nella collezione.

    Originariamente inviato da formeppe
    se potresti consigliarmi anche qualcosa( siti o libri con esempi pratici) te ne sarei grato.
    Di documentazione su Java ne trovi tantissima! Ad esempio il tutorial della Sun.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.