View Full Version : [Java] file array numerico
eligigia
03-12-2010, 15:43
Ciao a tutti sono ai primi passi con java e ho un problema da porvi :D
ho un file.txt contenente 2 righe di numeri
9 54 67 3 23 4 90 21 1 22
45 6 90 23 43 21 33 12 46
per quanto riguarda la lettura del file ci sono
ma la mia domanda è come fare a inserire la prima riga di numeri
in un array e la seconda fila in un altro??
ho provaro con StringTokenizer mi va a prendere tutti i valori e li inserisce in un unico arrey senza dividere le righe!:muro:
Grazie a tutti
banryu79
03-12-2010, 16:40
Sai come fare per leggere una singola riga alla volta?
Se sì, passi la String della riga letta ad un altro metodo che usa StringTokenizer o più semplicemente String.split per prendere i singoli tokens e infilarli in un array (se sai già quanti elementi per riga avrai nel file, altrimenti usi le Collection)
eligigia
03-12-2010, 18:43
ho provato con questo pezzo di codice:
while((riga=in.readLine())!=null){
String[]a=riga.split("\n");
}
mi salva solo l'ultima riga(indipendentemente da quante sono)
banryu79
06-12-2010, 08:37
ho provato con questo pezzo di codice:
while ((riga=in.readLine()) != null) {
String[]a = riga.split("\n");
}
mi salva solo l'ultima riga(indipendentemente da quante sono)
Perchè così, all'interno del ciclo while stai sovvrascrivendo l'array 'a' ad ogni iterazione.
E in ogni caso riga.split("\n") non ti restituisce il risultato che ti aspetti (se ho capito bene a te interessa, data una riga contenente dei valori interi separati da spazio, salvare tutti i valori di quella riga in un array).
Prova a procedere spezzando il problema in problemi più piccoli, e prova a risolverli uno alla volta. Ad esempio:
1- leggere un file una riga alla volta (input:file, output:singole righe lette)
2- data una riga (una String) letta, recuperare i singoli valori o token della riga e salvarli in un array.
Potresti provare a risolvere il punto (1) scrivendo un metodo che prende in input il nome di un file, e restituisce in output tutte le righe lette in un array di String.
Fatto questo risolvi (2) scrivendo un metodo che prende in input una String e restituisce in output un array di String
Alla fine ti basta utilizzare i due metodi (prima contrallane la correttezza) per produrre una soluzione del tuo problema.
La cosa importante, prima di mettersi a scrivere o anche solo a pensare al codice, è di fare un minimo di analisi del problema e di decomposizione dello stesso.
Per quanto riguarda il metodo String.split, ti ho scritto un esempio:
public class StringSlipTest
{
public static void main(String[] args) {
String text = "Tanto va la gatta al lardo che ci lascia lo zampino.";
String[] tokens = text.split(" ");
for (String token : tokens)
System.out.println(token);
}
}
eligigia
06-12-2010, 14:36
grazie mille :D
sono riuscita a risolvere il problema
magari con pezzi di codice in più ma funziona
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.