PDA

View Full Version : Problema array di oggetti


blackguardian
20-01-2010, 16:34
salve ho fatto questo pezzo di codice che mi legge un txt...è po particolare però il mio problema è l'iserimento di un nuovo oggetto nell'array...vi commento dov'è il problema...


try{


FileReader fr = new FileReader("Input.txt");//istanza classe per la lettura del file dei pacchi
BufferedReader br=new BufferedReader(fr);// istanza classe per leggere una riga di testo alla volta dei file dei pacchi
String linea;

int j=0;
int z=0;
Case[] casi = new Case[z];
Point[] punti = new Point [j];

while ((linea = br.readLine()) != null) {

String parole[] = linea.split(" ");
int valoriInt[]=new int[parole.length];
valoriInt[0]=Integer.parseInt(parole[0]);
valoriInt[1]=Integer.parseInt(parole[1]);
int N = valoriInt[0];
int M = valoriInt[1];
Case c = new Case(N,M);
casi[z]= new Case (N,M);//questa mi da l'eccezione
z++;
System.out.println(casi[z]);

for (int i = 0; i == N; i++) {
j++;
linea = br.readLine();
String stringhe[] = linea.split(" ");
int interi [] = new int[stringhe.length];
interi[0]=Integer.parseInt(stringhe[0]);
interi[1]=Integer.parseInt(stringhe[1]);
int x = interi[0];
int y = interi[1];
Point p = new Point(x,y);
punti [j] = new Point (x,y);
System.out.println(punti[j]);

}


}

} catch (IOException ex) {
ex.printStackTrace();


praticamente mi da un errore di eccezione del tipo
java.lang.ArrayIndexOutOfBoundsException

fero86
20-01-2010, 18:39
"casi" è un array di 0 riferimenti, non puoi assegnare il riferimento zeresimo perchè non c'è, l'array non contiene elementi.

blackguardian
21-01-2010, 00:02
e come dovrei fare?? scusa sono alle prime armi...

wingman87
21-01-2010, 00:28
All'inizio del tuo codice hai dichiarato due variabili j e z uguali a zero, subito dopo hai dichiarato due array di dimensione j e z, quindi di dimensione 0.

blackguardian
21-01-2010, 01:02
si ma anche instanziandoli con una grandezza maggiore stesso errore....scusate ma voi li nel mio codice come fareste...potete apportargli delle modifiche o perlomeno dirmi cosa devo modificare e come...grazie per la pazienza

wingman87
21-01-2010, 01:12
Dovresti dire cosa dovrebbe fare, così a occhio mi sono fatto un'idea però continuo a non capire appieno cosa devi fare quindi non vorrei darti consigli sbagliati.

blackguardian
21-01-2010, 09:27
semplicemente sto leggendo una stringa che è fatta in questa maniere

3 4 <-
0 0
3 2
4 1
2 3 <-
9 3
7 3

cominciando a leggere la stringa il primo carattere che incontro è il numero 3 allora devo leggere le "3" righe successive e creare tre oggetti diversi chiamati Point mentre con la prima riga devo creare oggetti chiamati Case; finite queste 3 righe si incontra 2 3 e devo fare la stessa cosa cioè leggere le due righe successive e creare oggetti di tipo Point per quelle due successive e un oggetto di tipo Case per 2 3 dove naturalmente 2 e 3 sono i parametri dell'oggetto...spero di essere stato chiaro...

cionci
21-01-2010, 10:19
Thread chiuso
|
V
http://www.hwupgrade.it/forum/showthread.php?t=1649196