Feld printen

C.B.

Aktives Mitglied
Hallo,

ich möchte ein Dreiecks Array printen mit der Arrays.toString Methode. Aber als Ausgabe erhalte ich solch einen Text:

[I@2437c6dc, null, null, null, null, null, null, null]
[[I@2437c6dc, [I@1f89ab83, null, null, null, null, null, null]
[[I@2437c6dc, [I@1f89ab83, null, null, null, null, null, null]
[[I@2437c6dc, [I@1f89ab83, [I@e73f9ac, null, null, null, null, null]

Ich hab probiert die toString Methode zu überschreiben aber weiß nicht recht was ich da ändern soll.
Könnt ihr mir sagen was ich tun muss, damit ich die Ausgabe in Zahlen erhalte?

Vielen Dank.

Java:
import java.util.Arrays;
public class Dreieck {


        public static void main(String[] args) {
            // TODO Auto-generated method stub

            int[][] dreieck = new int[8][];
                for (int i = 0; i < dreieck.length; i++) {
                    dreieck[i] = new int[i + 1];
                    for (int j = 0; j < i + 1; j++) {
                        dreieck[i][j] = i + j;
                        System.out.println(Arrays.toString(dreieck));
                    }
    
                }
                        
        }
    }
 
In Java ist ein mehrdimensionales ein Array von Arrays. Wenn Du Arrays.toString() darauf anwendest, wird Dir eben eine Textdarstellung des Arrays zurückgegeben, das die anderen Arrays enthält. Wenn Du deren Textdarstellung haben willst, musst Du Arrays.toString() auf diese anwenden, zum Beispiel:
Java:
           int[][] dreieck = new int[8][];
           for (int i = 0; i < dreieck.length; i++) {
               dreieck[i] = new int[i + 1];
               for (int j = 0; j < i + 1; j++) {
                   dreieck[i][j] = i + j;
               }
               System.out.println(Arrays.toString(dreieck[i]));
           }
 
In Java ist ein mehrdimensionales ein Array von Arrays. Wenn Du Arrays.toString() darauf anwendest, wird Dir eben eine Textdarstellung des Arrays zurückgegeben, das die anderen Arrays enthält. Wenn Du deren Textdarstellung haben willst, musst Du Arrays.toString() auf diese anwenden, zum Beispiel:
Java:
           int[][] dreieck = new int[8][];
           for (int i = 0; i < dreieck.length; i++) {
               dreieck[i] = new int[i + 1];
               for (int j = 0; j < i + 1; j++) {
                   dreieck[i][j] = i + j;
               }
               System.out.println(Arrays.toString(dreieck[i]));
           }
Vielen Dank. Funktioniert 🙂
 
Natürlich funktioniert das, das entscheidende aber ist, dass Du verstehst, warum es vorher nicht funktioniert hat.
 
eine formatirte ausgabe so

Java:
System.out.format ("dreieck[%d][%d] = %d  %n",i,j,dreieck[i][j]);
 

Zurück
Oben