# buchstaben array ausgeben



## lennero (15. Dez 2015)

hallo. die buchstaben sollen in diesem format in der konsole ausgegeben werden.





das array soll mit 2 for schleifen gefüllt und mit 2 for schleifen ausgegeben werden wie kriege ich das hin ?. ich bekomme es aber nur mit 2 for schleifen hin und auch da ist die ausgabe anders nämlich so:







```
class array{
    public static void main(String[]args){
     
        String [][] a;
        a= new String [3][5];
     
        char b='A';
     
        for(int i=0; i<a.length;i++){
            for(int j=0;j<a[i].length;j++){
                a[i][j] = ""+((char)(i+b))+""+((char)(j+b));
                System.out.print(a[i][j]+"\t");
             
            }
            System.out.println();
         
        }
     
    }
}
```


----------



## lennero (15. Dez 2015)

ok habe den code mittlerweile geändert sodass das format stimmt : wie kriege ich das nun mit 4 schleifen hin ? also mit 2 schleifen füllen und mit 2 schleifen ausgeben ?

```
class array{
    public static void main(String[]args){
     
        String [][] a;
        a= new String [5][3];
     
        char b='A';
     
        for(int i=0; i<a.length;i++){
            for(int j=0;j<a[i].length;j++){
                a[i][j] = ""+((char)(i+b))+""+((char)(j+b));
                System.out.print(a[i][j]+"\t");
             
            }
            System.out.println();
         
        }
     
    }
}
```


----------



## lennero (15. Dez 2015)

habs nun hinbekommen. ich verstehe aber den sinn hinter den 2 schleifen irgendwie nicht, macht es den code nicht dadurch unnötig länger ?


```
class array{
    public static void main(String[]args){
        String [][] a;
        a= new String [5][3];
   
        char b='A';
   
        for(int i=0; i<a.length;i++){
            for(int j=0;j<a[i].length;j++){
                a[i][j] =""+((char)(i+b))+""+((char)(j+b));
            }
        }
   
        for(int i=0;i<a.length;i++){
            for(int j=0;j<a[i].length;j++){
                System.out.print(a[i][j]+"\t");
            }
            System.out.println();
        }
    }
}
```


----------



## Joose (15. Dez 2015)

Klar du könntest die Ausgabe auch direkt in den ersten beiden Schleife vornehmen.
Aber du hast die Aufgabenstellung selbst gepostet. 2 Schleife um das Array zu befüllen und 2 Schleife um das Array auszugeben


----------



## Xyz1 (15. Dez 2015)

Ich hätte das etwas einfacher und mehr funktional/parametrisiert geschrieben als du:


```
/**
* @author DerWissende, 15.12.2015
*/
public class Temp {

    public static void main(String[] args) {
        kombinieren(new char[2], new char[][]{{'a', 'b', 'c'}, {'a', 'b', 'c', 'd', 'e'}}, 0);
    }

    public static void kombinieren(final char[] chrArr, final char[][] chrArrArr, final int index) {
        if (index >= chrArrArr.length) {
            System.out.println(String.valueOf(chrArr));
            return;
        }
        for (char c : chrArrArr[index]) {
            chrArr[index] = c;
            kombinieren(chrArr, chrArrArr, index + 1);
        }
    }
}
```

Gibt dann aus:


```
aa
ab
ac
ad
ae
ba
bb
bc
bd
be
ca
cb
cc
cd
ce
```

`final` ist Geschmackssache, ich finde es "eigentlich" unleserlich

Jetzt musst du dich nur noch um eine schöne Ausgabe kümmern, oder diese in einem zusätzlichen Parameter "zusammenbauen", der dann zurückgegeben wird.

mfg


----------

