PDA

View Full Version : [Java] Eccezione incomprensibile


msr90
14-04-2010, 10:03
Ciao a tutti, sto scrivendo un programma per esercizio, questo è il codice:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.FileReader;
import java.io.File;

public class PersonaTester {

public static void main(String[] args) throws IOException {
Persona[] persone = new Persona[10];

File file = new File("Autori.txt");//Autori.txt è un file da leggere
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = reader.readLine();
while(line != null) {
int i = 0;
int primaVirgola = line.indexOf(",");
String nome = line.substring(0, primaVirgola);
int secondaVirgola = line.indexOf("," , primaVirgola);
String cognome = line.substring(primaVirgola + 1, secondaVirgola);
int terzaVirgola = line.indexOf("," , secondaVirgola);
Data dataNascita = new Data(line.substring(secondaVirgola + 1,terzaVirgola));
String cittaNatale = line.substring(terzaVirgola + 1, line.length());
persone[i] = new Persona(nome, cognome, dataNascita, cittaNatale);
line = reader.readLine();
i++;
}

System.out.println("Gli autori sono: ");
for(Persona a : persone)
System.out.println(a);
}
}

nel codice è presente una classe Data da me definita sempre per l'esercizio, e lo stesso vale per Persona, ma il problema è che in fase di esecuzione mi dice
StringIndexOutOfBoundsException: String index out of range: -1
e non riesco a capire cosa può significare...!!!!!:muro: Help!!!
Grazie in anticipo a tutti.

vladix
14-04-2010, 10:11
StringIndexOutOfBoundsException: String index out of range: -1
e non riesco a capire cosa può significare...!!!!!:muro: Help!!!


semplicemente che il valore di ( controlla anche gli altri indexof)
int primaVirgola = line.indexOf(",");

e -1 :D . dovresti fare qualche controllo sugli indexof



int primaVirgola = line.indexOf(",");

String nome = "";
if(primaVirgola >= 0)
nome = line.substring(0, primaVirgola);


EDIT: e il metodo substring che lancia una StringIndexOutOfBoundsException (http://java.sun.com/j2se/1.4.2/docs/api/java/lang/StringIndexOutOfBoundsException.html).