Hallo, ich habe einen seltsamen Fehler. In ein Object hat eine Liste von Integer-Werten (bis zu mehrere tausend - teilweise die Wrete im Tausender-Bereich), die in der Konsole über eine Funktion ausgegeben werden können (zu Test-Zwecken). Die Ausgabe ist so, dass in der ersten Zeile alle Tausender-Stellen der Reihe nach stehen, in der zweiten Zeile die Hunderter, usw.
Richtige Ausgabe (wenn die indexMap einfach mit aufsteigenden Zahlen bis z.B. 1234 gefüllt ist):
0000 ... 1111
0000 ... 2222
0000 ... 3333
0123 ... 1234
Im Verlauf meines Programms wird bei mehreren Objekten die indexMap mit Zahlen gefüllt und ausgeben. Bei ca. 10 Objekten funktioniert das ohne Probleme, nur bei einem Objekt werden keine Ziffern ausgegeben, sondern nur Leerzeichen (bei Eclipse kann ich aber auch genau soviele Leerzeichen markieren, wie Zahlen in der indexMap sind, also wieviele Ziffern da sein sollten).
-Ob es zu Fehlern kommt hab ich mit dem über die Kommentare angedeuteten try-catch-Block überprüft: aber es erscheint nichts udn das Programm macht ohne durch
zu erminieren weiter
-Der System.err-Stream wird im gesamten Programm nicht verändert (System.out schon, aber die 4
kommen an)
-Über
außerhalb der Schleifen habe ich überprüft, ob die indexMap leer ist, aber sie ist gefüllt, wie es sein sollte
Was mich richtig verwirrt ist, wenn ich bei jeder Ausgabe noch ein + "," anhänge, funktioniert die Ausgabe in allen Fällen, allerdings mit einem "," zwischen jeder Ziffer. Also wie beim Testfall von oben:
0,0,0,0, ... 1,1,1,1,
0,0,0,0, ... 2,2,2,2,
0,0,0,0, ... 3,3,3,3,
0,1,2,3, ... 1,2,3,4,
Hat da jmd. dafür eine Erklärung? Das kann man bestimmt irgendwie mit Tricksen lösen, aber einen gescheiten Grudn muss es ja geben!
Code:
Richtige Ausgabe (wenn die indexMap einfach mit aufsteigenden Zahlen bis z.B. 1234 gefüllt ist):
0000 ... 1111
0000 ... 2222
0000 ... 3333
0123 ... 1234
Im Verlauf meines Programms wird bei mehreren Objekten die indexMap mit Zahlen gefüllt und ausgeben. Bei ca. 10 Objekten funktioniert das ohne Probleme, nur bei einem Objekt werden keine Ziffern ausgegeben, sondern nur Leerzeichen (bei Eclipse kann ich aber auch genau soviele Leerzeichen markieren, wie Zahlen in der indexMap sind, also wieviele Ziffern da sein sollten).
-Ob es zu Fehlern kommt hab ich mit dem über die Kommentare angedeuteten try-catch-Block überprüft: aber es erscheint nichts udn das Programm macht ohne durch
Code:
System.exit(1);
-Der System.err-Stream wird im gesamten Programm nicht verändert (System.out schon, aber die 4
Code:
System.out.println();
-Über
Code:
System.out.println(indexMap.size());
Was mich richtig verwirrt ist, wenn ich bei jeder Ausgabe noch ein + "," anhänge, funktioniert die Ausgabe in allen Fällen, allerdings mit einem "," zwischen jeder Ziffer. Also wie beim Testfall von oben:
0,0,0,0, ... 1,1,1,1,
0,0,0,0, ... 2,2,2,2,
0,0,0,0, ... 3,3,3,3,
0,1,2,3, ... 1,2,3,4,
Hat da jmd. dafür eine Erklärung? Das kann man bestimmt irgendwie mit Tricksen lösen, aber einen gescheiten Grudn muss es ja geben!
Code:
Java:
public class DieKlasse {
private ArrayList<Integer> indexMap;
public void print() {
//try {
for(int i = 0; i < indexMap.size(); i++) {
System.out.print(indexMap.get(i) / 1000 % 10);
}
System.out.println("");
for(int i = 0; i < indexMap.size(); i++) {
System.out.print(indexMap.get(i) / 100 % 10);
}
System.out.println("");
for(int i = 0; i < indexMap.size(); i++) {
System.out.print(indexMap.get(i) / 10 % 10);
}
System.out.println("");
for(int i = 0; i < indexMap.size(); i++) {
System.out.print(indexMap.get(i) % 10);
}
System.out.println("");
//} catch(Exception e) {
//e.printStackTrace();
//System.exit(1);
//}
}
}
Zuletzt bearbeitet: