# Zweidimensionales Array Elemente jeder Spalte zählen



## Buttahbrot (13. Jan 2014)

Hey, ich habe folgendes Problem: 

Ich soll die Anzahl der Elemente jeder Spalte zählen, z.B. hat Spalte 1 = 13 Elemente, Spalte 2 = 11 Elemente usw usw. 

Nun bin ich aber etwas überfordert und weiß nicht genau wie ich mich da jetzt ranmachen soll, wäre dankbar wenn mir jemand helfen könnte. 

MfG Buttahbrot


----------



## TheSorm (13. Jan 2014)

Ich glaub du soltest nochmal sagen was genau du mit "Spalten zählen" meinst!


----------



## Buttahbrot (13. Jan 2014)

Mein Array würde folgendermaßen aussehen:

5 2 3 6 6 7 2 1 2 4 8 9 3
3 8 6 3 5 4 1 8 2 8 8
1 2 2 7 4 1
8 2
1


Jetzt will ich zählen wie viele Elemente jede Spalte hat, also die erste hat in dem Beispiel 5, die zweite 4, die dritte 3 usw.


----------



## njans (13. Jan 2014)

In welcher Form liegen die Spalten vor? Sind es Strings?


----------



## Buttahbrot (13. Jan 2014)

Nein ein zweidimensionales int-Array.


----------



## nomuri (13. Jan 2014)

Mit 2 verschachtelten for schleifen durchlaufen und addieren


----------



## njans (13. Jan 2014)

Da muss er nichts addieren. Er will ja die Länge der Arrays wissen.
Also mit einer for-schleife rüber und jedesmal die length() Methode aufrufen.


----------



## the_koeb (14. Jan 2014)

njans hat gesagt.:


> Da muss er nichts addieren. Er will ja die Länge der Arrays wissen.
> Also mit einer for-schleife rüber und jedesmal die length() Methode aufrufen.



Hallo.

Nicht addieren ist klar.. aber denke mit ner for-Schleife wird spätestens in der Spalte 2  ArrayIndexOutOfBoundsException kommen oder wie stellst du dir das vor?

Auch die lenght()-Methode funktioniert in diesem int[][] Array nicht, oder habe ich nen Denkfehler??


----------



## njans (14. Jan 2014)

NUn ich gehe hier natürlich davon aus, dass die jewieligen Arrays nur so lang sind, wie auch Zahlen vorhanden sind.



Spoiler





```
for (int[] array : my2DArray)
  System.out.println(array.length());
```



Damit sollte er ohne Probleme jede Länge der Arrays kriegen.


----------



## the_koeb (14. Jan 2014)

Buttahbrot hat gesagt.:


> Mein Array würde folgendermaßen aussehen:
> 
> 5 2 3 6 6 7 2 1 2 4 8 9 3
> 3 8 6 3 5 4 1 8 2 8 8
> ...





njans hat gesagt.:


> NUn ich gehe hier natürlich davon aus, dass die jewieligen Arrays nur so lang sind, wie auch Zahlen vorhanden sind.



So wie du es schreibst, bekommt er aber nur die Anzahl der Zeichen in der jeweiligen Reihe.. in seinem Fall also 5 2 3 6 6 7 2 1 2 4 8 9 3 gleich 13. Aber er will ja die Anzahl in den Spalten.. also 

5
3
1
8
1

gleich 5. 

Könnte mir es in etwa so vorstellen.. wobei test hier ein char[][] Array ist und es funktioniert auch nur wenn Anzahl der Zeilen und Spalten gleich sind.. wenn zB  
1 2 3 4
5 6 7
8 9
0
im Array stehen würde, kommt in der 2. Reihe an der Position [0][4] ein ArrayIndexOutOfBoundsException


Spoiler





```
int counter = 0;
int max = maxLaenge(test);
for (int n = 0; n < max; ++n) {
    counter = 0;
    for ( int k = 0; k < test.length; k++) {    
        if ( Character.isLetterOrDigit( test[k][n] ) ) {   
            System.out.println(test[k][n] + " K = " +k+ " n= " +n);
            counter++;
        } else break;
}System.out.print(counter); 

static int maxLaenge (char[][] input) {
    int max=0;
    int zeilen = input.length;
    for (int i = 0; i < zeilen; i++) {       
       int len = input[i].length;
       if (max < len)
          max = len;
     }return max;
   }
}
```


----------

