hmm.. ich würde das ganze folgendermaßen lösen:

du hast insgesammt 3 Zählschleifen, eine ist verantwortlich für die Trennung zwischen der Zahl und dem Array, die anderen beiden sind je für die Zahl und den Array verantwortlich. Die Schleifen für Array und Zahl liegen innerhalb der ersten Schleife.
Die erste Schleife zählt die Trennung zwischen Zahl und Buchstabe immer um 1 weiter.

Die anderen beiden Schleifen dienen der Ausgabe. Die Schleife die deine Zahlen ausgibt zählt dabei solange, bis sie den Wert der Variable, die in der ersten Schleife erhöht wird, erreicht hat.

Die Schleife, die deine Wörter ausgibt, zählt immer so lange, bis sie die Länge der Zeile - den Wert der Variable, die bei der ersten Schleife erhöht wird, erreicht hat.

Da ich kein Java kann, versuche ich das ganze mal in Pseudocode aufzuschreiben:

neben den 2 Arrays brauchst du noch 3 Variablen für die Zählschleifen, ich nenne sie mal i,i2, und zaehl
meine 2 Arrays heißen a (Zahlarray), und b (Buchstabenarray)
Code:
zaehl=1;
Solange (zaehl < 8)
  i=0;
  Solange (i<zaehl)     //hier wird jetzt eine Zeile Zahlen ausgegeben
    Ausgabe: a[i];
  ende Solange
  i2=0
  Solange(i2<(8-zaehl))    //Hier wird jetzt eine Zeile Buchstaben ausgegeben
    Ausgabe: b[i];
  ende Solange
  zaehl=zaehl+1;
  Ausgabe: [Enter]     //Damit man eine Zeile Weiter springt
ende Solange
Warte bis eine Taste gedrückt wird
Das Programm gibt immer zeilenweise zuerst die Zahlen und dann die Ziffern aus. Das Ende der Zahlen geht bei jedem durchlauf der ersten Schleife um eine Stelle weiter. Gleichzeitig verringert sich die Anzahl der Buchstaben.

[i] edit: zu spät >_<[i]