Gå til innhold

StringIndexOutOfBoundsException trenger hjelp..


Anbefalte innlegg

Hei. Sitter og skal skrive et lite java program. Men har et problem jeg ikke finner ut av.

Jeg skal lese fra en fil, som deretter skal bruke infoen for å lage objekter.

 

Metoden:

 

void fraFil(){

skjerm.outln(" *** Hente registeret fra fil *** ");

In frafil = new In("fil.txt");

while(!frafil.endOfFile()){

String navn = frafil.inWord(";");

String kjønn = frafil.inWord(";");

String mor = frafil.inWord(";");

String far = frafil.inWord(";");

String ekteskap = frafil.inWord(";");

int antb = frafil.inInt(";");

if(k.equals("mann")){

Mann ma = new Mann(navn, kjønn, mor, far, ekteskap);

regnavn.put(navn, ma);

Mann p = (Mann) regnavn.get(navn);

p.antba = antb;

while(antb > 0){

String npb = frafil.inWord(";");

Barn b = new Barn(npb);

p.barna.put(npb, b);

antb--;

}

}

 

if(k.equals("kvinne")){

Kvinne kv = new Kvinne(navn, kjønn, mor, far, ekteskap);

regnavn.put(navn, kv);

Kvinne kvi = (Kvinne) regnavn.get(navn);

int plass = 0;

kvi.antba = antb;

while(antb > 0){

String nb = frafil.inWord(";");

kvi.bar[plass] = nb;

antb--;

plass++;

 

}

}

}

 

frafil.close();

}

 

feil beskjeden:

 

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String ind

ex out of range: -1

at java.lang.String.substring(String.java:1762)

at easyIO.In.getCause(In.java:1299)

at easyIO.In.inInt(In.java:960)

at FolkeRegister.fraFil(Oblig1.java:255)

at FolkeRegister.kommandol°kke(Oblig1.java:32)

at Oblig1.main(Oblig1.java:7)

 

 

filen den leser fra ser slik ut:

navn;kjønn;mor;far;ekteskap;antall barn;navnpå barn;navnpånestebarn; osv ettersom hvor mange barn det er. etterpå starter neste person på neste linje.

 

Jeg har prøv å skrive ut hver enese variabel til skjerm etter at den er lest fra filen og det funker gjennom hele filen.

 

Noen som ser hva som er galt eller har en anelse om hva jeg kan gjøre?

 

Bruker forresten easyIO, eneste er forskjellig måte å skrive til skjerm/fil fra bruker.

Lenke til kommentar
Videoannonse
Annonse

josefine;kvinne;mettemor;petrra;?;1;petrus;

mette;kvinne;mettemor;mettefar;knut;1;julie;

petrus;mann;josefine;josefan;?;0;

josefan;mann;josemor;josefar;?;1;josef;

knut;mann;knutmor;knutfar;mette;1;julie;

 

 

 

 

 

Fila jeg prøver å lese...

Lenke til kommentar

oppgaven din spesifiserer forresten ikke hvordan du skal lese og skrive til fil, så du kunne liksågodt ha brukt ObjectOutputStream og ObjectInputStream for lesingen, da blir det her hele 3 linjer for lesing og 3 linjer for skriving :p

 

Ser forresten at det jeg skrev over ikke nødvendigvis er riktig, du har jo en if, så du leser ikke den 7 gangen i den løkken...

Lenke til kommentar

jeg fikk løst problemet med å først gå gjennom og telle hvor mage linjer det er, og dermed gjennomføre løkka så mange ganger. forstår ikke helt hvorfor dette måtte gjøres men det funker :)

 

har aldri prøvd ObjectOutputStream og ObjectInputStream .. så kan ikke si noe om det :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...