Tabellarische Darstellung im CMD

Guten Abend,
und zwar möchte ich gerne zwei Zeilen bilden, die eine Art Tabelle darstellen sollen.
Die eine Zeile gibt nur die Zahlen von 1-20 aus und darunter soll später (sprich in der zweiten Zeile) genau unter den Zahlen darüber ein zugehöriger Wert drunter geschrieben werden.
Also wie es hier im Bild bei den ersten Zahlen stimmt, doch ab 10 nicht mehr, weil dort keine Formatierung eingeführt wurde.
Also wie kann ich das so formatieren das der drunter liegende Wert immer direkt auch dadrunter bleibt und sich nicht verschiebt?

Das Bild: (Klick)

Der derzeitige Programmcode:

{
  public static void main(String[] args)
  {
 
    
    boolean felder[] = new boolean[20];
    String status[] = new String[20];
    
    int zzahl = 0, i = 0;
    String zeile1 = "", zeile2 = "";
    
    for (i=0 ;i<=5 ;i++ ) 
    {
      zzahl = Cio.zufall(0,19);
      felder[zzahl] = true;
    }

    
    for (i = 0;i<20 ;i++ ) 
    {
      status** = "-" ;
      zeile1 = zeile1 + " " + (i+1) ;
      zeile2 = zeile2 + " " + status**;
    } 
    
    System.out.println(zeile1);
    System.out.println(zeile2);
  }
}```

Würde mich über Hilfe freuen.

da gibt es verschiedene Ansätze,

ein simpler (klappt bis 100) wäre, beim Zusammenbau von zeile2 ein if hinzuzunehmen:
wenn i > 9 dann ein zweites Leerzeichen Abstand,

oder evtl. schöner und gleicher Aufwand: immer alles zweistellig, das if i < 10 dann für die erste Zeile,
in der zweiten schlicht immer zwei Leerzeichen Abstand,

aber nur falls jeder Wert immer nur aus einem Zeichen besteht, je komplexer desto komplizierter…

falls erlaubt und abhängig davon was unter “direkt … darunter” zu verstehen ist, kann man hier evtl. String.format(…) nutzen.

	for (int i = 0; i < status.length; i++) {
		System.out.print(String.format("%4s", i));
	}
	System.out.println();
	for (int i = 0; i < status.length; i++) {
		status** = "-";
		System.out.print(String.format("%4s", status**));
	}
	System.out.println();```

Danke Michael genau das habe ich gesucht!