# Zweidimensionale Arrays als Matrix ausgeben



## Wuld (11. Jul 2014)

Hallo,
meine Problem ist, dass mein zweidimensionaler Array in der Konsole untereinander ausgegeben wird, anstatt wie eine Matrix.
Hier mein Quellcode:

```
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


----------



## knilch (11. Jul 2014)

Hi,
Versuch es mal so:

```
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
```


----------



## Wuld (11. Jul 2014)

Ändert leider nichts. Kann es sein das es an meinem Laptop oder so liegt?!


----------



## knilch (11. Jul 2014)

hm, ich denke nicht. Poste doch mal den ganzen code.


----------



## kaoZ (11. Jul 2014)

Mal abgesehen davon das ein 2D-Array eine Matirx ist 

Hier mal mit chars dargestellt :


```
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 :


```
***
***
***
```


----------



## njans (11. Jul 2014)

Wuld hat gesagt.:


> Hallo,
> meine Problem ist, dass mein zweidimensionaler Array in der Konsole untereinander ausgegeben wird, anstatt wie eine Matrix.
> Hier mein Quellcode:
> 
> ...




println hängt immer einen Zeilenumbruch an. Deswegen solltest du wohl eher System.out.print()  verwenden.


----------



## Wuld (11. Jul 2014)

Also, das ist mein ganzer Quellcode: 
	
	
	
	





```
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:
	
	
	
	





```
*
**
***
****
```

Ziel:
	
	
	
	





```
---*---
--*-*--
-*-*-*-
*-*-*-*
```
("-" 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


----------



## kaoZ (11. Jul 2014)

```
System.out.print(System.getProperty("line.separator")); genau bedeutet?
```

das 
	
	
	
	





```
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 


```
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.


----------



## knilch (12. Jul 2014)

> jetzige Ausgabe:
> Java Code: Quelltext in neuem Fenster öffnen
> 
> *
> ...


hier ein Beispiel, wie du den Baum ausgeben kannst:

```
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:

```
*
     ***
    *****
   *******
  *********
 ***********
*************
```


----------

