Zweidimensionale Arrays als Matrix ausgeben

Wuld

Mitglied
Hallo,
meine Problem ist, dass mein zweidimensionaler Array in der Konsole untereinander ausgegeben wird, anstatt wie eine Matrix.
Hier mein Quellcode:
Java:
 String[][] array=new String [4][7]; 
array=dreieck();
for (int k=0;k<array.length ;k++ ) {
  for (int l=0;l<array[k].length ;l++ ) {
    System.out.println(array[k][l]);
  } // end of for
} // end of for

Hoffe ihr könnt mir weiterhelfen.
Danke
 
Hi,
Versuch es mal so:
Java:
String[][] array=new String [4][7]; 
array=dreieck();
for (int k=0;k<array.length ;k++ ) {
  for (int l=0;l<array[k].length ;l++ ) {
    System.out.print(array[k][l] + " ");
  } // end of for
  System.out.println();
} // end of for
 
Zuletzt bearbeitet:
Mal abgesehen davon das ein 2D-Array eine Matirx ist 😉

Hier mal mit chars dargestellt :

Java:
public class Foo {

	public static void main(String[] args) {
	    
		char[][] matrix = new char[3][3];
		
		for (int i = 0; i < matrix.length; i++) {
	        for (int j = 0; j < matrix[i].length; j++) {
	            matrix[i][j] = '*';
	            System.out.print(matrix[i][j]);
            }
            System.out.print(System.getProperty("line.separator"));
        }
    }
}

Ausgabe :

Code:
***
***
***
 
Hallo,
meine Problem ist, dass mein zweidimensionaler Array in der Konsole untereinander ausgegeben wird, anstatt wie eine Matrix.
Hier mein Quellcode:
Java:
 String[][] array=new String [4][7]; 
array=dreieck();
for (int k=0;k<array.length ;k++ ) {
  for (int l=0;l<array[k].length ;l++ ) {
    System.out.println(array[k][l]);
  } // end of for
} // end of for

Hoffe ihr könnt mir weiterhelfen.
Danke


println hängt immer einen Zeilenumbruch an. Deswegen solltest du wohl eher System.out.print() verwenden.
 
Also, das ist mein ganzer Quellcode:
Java:
public class Tannenbaum {
  public static void main (String[] args){
    String[][] array=new String [4][7]; 
    array=dreieck();
    for (int k=0;k<array.length ;k++ ) {
      for (int l=0;l<array[k].length ;l++ ) {
        System.out.print(array[k][l]);
      } // end of for
      System.out.print(System.getProperty("line.separator"));
    } // end of for
    
    
  }
  
  public static String[][] dreieck () {
    String[][] a=new String [4][7];
    for (int i=0;i<a.length;i++) {
      for (int b=0;b<a[i].length;b++) { 
        if (i==0 && b==a.length/2) {
          a[i][b]="*";
        } // end of if
        else if (i==1 && b==a.length/2+1 || i==1 && b==a.length/2-1) {
          a[i][b]="*";
        } // end of if
        else if (i==2 && b%2!=0) {
          a[i][b]="*";
        } 
        else if (i==3 && b%2==0) {
          a[i][b]="*";
        } 
        else {
          a[i][b]="";
        } // end of if-else
      } // end of while
    } // end of for
    return a;
  }
}

jetzige Ausgabe:
Java:
*
**
***
****

Ziel:
Java:
---*---
--*-*--
-*-*-*-
*-*-*-*
("-" dienen nur als Platzhalter, sollen leer sein)

Und könntest du mir mal näher erläutern, was das System.out.print(System.getProperty("line.separator")); genau bedeutet?

Schon mal ein Danke an alle 🙂
 
Java:
System.out.print(System.getProperty("line.separator")); genau bedeutet?

das
Code:
System.getProperty("line.separator");
liefert dir eine im System (je nach OS) festgelegten Eigenschaft, in diesem Fall einen Zeilenumbruch, unabhängig der Plattform und des OS auf/für welche du Programmierst.

So kann man z.B auch über

Java:
System.getProperty("user.dir");

an den Systempfad in Form eines Strings, unter welchem die Dateien des Aktuell im OS angemeldeten Users liegen.

Es gibt hier unterschiedlichste Befehle für Unterschiedlichste Situationen. 🙂
 
Zuletzt bearbeitet:
jetzige Ausgabe:
Java Code: Quelltext in neuem Fenster öffnen

*
**
***
****


Ziel:
Java Code: Quelltext in neuem Fenster öffnen

---*---
--*-*--
-*-*-*-
*-*-*-*

("-" dienen nur als Platzhalter, sollen leer sein)

Und könntest du mir mal näher erläutern, was das System.out.print(System.getProperty("line.separator")); genau bedeutet?
hier ein Beispiel, wie du den Baum ausgeben kannst:
Java:
public class Tannenbaum {
	public static void main(String[] args) {
		int hoehe = 7;
		zeichneBaum(hoehe);
	}
	
	private static void zeichneBaum(int hoehe) {
		for (int i = 0; i < hoehe; i++) {
			for (int j = 0; j < hoehe-i-1; j++) {
				System.out.print(" ");
			}
			for (int j = 0; j < i*2 + 1; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}
Ausgabe:
Code:
      *
     ***
    *****
   *******
  *********
 ***********
*************
 

Zurück
Oben