Veröffentlicht 2. April 200916 j 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?
2. April 200916 j 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.
2. April 200916 j 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.
3. April 200916 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.