Wie kann man in Java eine Zeichenformation ausgeben?

2 Antworten

Eine Schleife brauchst Du auf jeden Fall für die einzelnen Zeilen. die Leerzeichen in einer Schleife auszugeben, ist dagegen unnötig. Verwende lieber " ".repeat(i) für i Blanks.

Eine Zeile i ∈ { 1, 2, 3, ... N } besteht aus b(i, N) führenden Blanks, einem "\", f(i, N) Füllblanks, einem "/" und einem Zeilenende:

System.out.print(" ".repeat(b(i, N))+"\\"+" ".repeat(f(i, N))+"/\n");

oder

System.out.printf("%s\\%s/\n", " ".repeat(b(i, N)), " ".repeat(f(i, N)));

Du brauchst nur noch die richtigen Formeln für b() und f(): b(i, N)=i-1 ist einfach, und f(i, N) findest Du selbst heraus. Das Schöne an dieser Aufgabe ist ja, dass Du gleich siehst, wenn die Formel nicht ganz stimmt :)

Du hast di Lösung doch schon ganz genau beschrieben!

  1. Abfrage der Zeilennummer
  2. Eine Schleife für sie Leerzeichen vor dem V (Einfach mal im Bild abzählen wieviele Leerzeichen müssen denn in jeder Zeile sein)
  3. Eine Schleife die ein \ zeichnet dann Leerzeichen (einfach abzählen im Bild) die für die jeweilige Zeile notwendig sind ausgeben dann ein / anzeigen und Zeilenumbruch

Das war es doch schon


BlorerGamesDE 
Beitragsersteller
 30.10.2022, 09:56

für die Leerzeichen links hätte ich for(i=0;i <= AnzahlZeilen;i++) und dann eine Leerzeichen Ausgabe und nach der Schleife eine \ Ausgabe. Aber so funkt es nicht ganz

0
NackterGerd  30.10.2022, 10:16
@BlorerGamesDE

Aber wieso?

Immer soviel Leerzeichen wie dein i (Zeile-1)

D.h. in der ersten 0

In der zweiten 1

Ind der dritten 2 ... Leerzeichen

0
NackterGerd  30.10.2022, 10:23
@NackterGerd

Natürlich nicht nach der Schleife das \

Sondern in der Schleife. Der Zähler ist ja die Zeile

Und in jeder Zeile kommt erst Leerzeichen dann \ dann die 2.Schleife mit Leerzeichen dann /

Also Schleife in Schleife!

0