Hi,
int zaehler;
^^^
System.out.println(zaehler);
Du gibst einen Wert vom Typ int und nicht vom Typ char aus.
Durch die Zuweisung zuvor
zaehler = array1[i][j];
wird vom Compiler automatisch eine erweiternde Konvertierung vorgenommen. Diese Konvertierungen sind folglich implizit, und erzeugen daher auch keine Compiler-Meldungen. Normalerweise ist das auch gut so, hat aber in Deinem Fall Erstaunen hervorgerufen ;-)
Viele Grüße,
Martin Jung