dl85hej Geschrieben 2. April 2009 Geschrieben 2. April 2009 Hallo! Ich rufe die Methode peterwagen2.zeileSplit2() auf und möchte nach Rückkehr das Array dieses Objektes darstellen: System.out.println(peterwagen2.dlsuse[0]); System.out.println(peterwagen.dlsuse[1]); Problem hierbei ist, dass in dem Feld 0 der Wert von Feld eins steht und das Feld 1 mit 'null' beschrieben ist. Wie kann das sein, weil in der Methode die Felder noch richtig beschrieben sind? die Methoden hierzu liegen in der Klasse myclass static class myclass{ String pfad, zeile, zeichenkette; int[] vorlauf = new int[7]; int[] dlsuse = new int[2]; int[] grenzwert = new int[2]; Integer wert, initDavid; Boolean alarm; //Auslesen der Zeile aus der Datei void zeileSplit2(String pfad, int cut, int a){ //Datei zersplitten String [] result = pfad.split("\\s"); for(int x = 0;x<result.length;x++){ StringBuffer sba = new StringBuffer(result[x]); sba.delete(0,cut); result[x] = sba.toString(); //System.out.println(result[x]); //System.out.println(a); dlsuse[x] = Integer.parseInt(result[x]); // x und somit die Felder haben die Werte 0 und 1 System.out.println(x); //Felder sind mit den richtigen Werten aus der Datei beschrieben System.out.println("DL " + dlsuse[x]); } } Wird das Array falsch definiert? Zitieren
VaNaTiC Geschrieben 2. April 2009 Geschrieben 2. April 2009 Das Array ist ok. new int[2] ist eben [0] und [1] Manche Sachen verstehe ich nur nicht ganz, aber das tut nix zur Sache. In zeileSplit2() läuft x in der Schleife von 0 bis result.length-1, aber x darf als Index in dlsuse laut Deiner Array-Initialisierung niemals >1 sein, sonst knallts. D.h. ich gehe davon aus, dass in Deiner Datei maximal result.length bis 1 geht. Jetzt frag ich mich nur, wann genau in result[x] das falsche drin steht, denn das parsen als Int ist ok. Zitieren
zui2000 Geschrieben 2. April 2009 Geschrieben 2. April 2009 Bist du dir sicher das das "result" Array über den Split auch mind. 2 Einträge bekommt? Debug doch einfach Schritt für Schritt und überwache die Arrays. Irgendwann wirst du schon sehen, wann der falsche Wert reinwandert. Zitieren
dl85hej Geschrieben 3. April 2009 Autor Geschrieben 3. April 2009 Hallo! Ich habe den Bock gefunden! void zeileSplit2(String pfad, int cut, [B]int a[/B]){ dlsuse[B][a][/B] = Integer.parseInt(result[x]); mit der lokalen Variable x funktionierte es nicht...mit dem Parameter a wohl! :upps Danke für die Hilfe Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.