Programmieren Reverse text umgedreht?
Hallo eine Frage, meine übung lautet :Schreiben Sie ein Programm Reverse , welches eine beliebige Anzahl an Argumenten von der Konsole entgegennimmt und diese in umgekehrter Reihenfolge auf der Standardausgabe ausgibt. Jedes Argument soll in einer einzelnen Zeile ausgegeben werden. Wenn kein Argument übergeben wird, soll nichts ausgegeben werden.
Also quasi, schreibe ich im Befehl ein : Hallo wie gehts ? und mein Programm soll mir : ? gehts wie Hallo, zurück geben.. ich möchte eine for schleife dafür an wenden aber ich weiss nicht wie ich anfangen kann damit ich beliebig an Anzahl von Argumenten schreiben kann. Ich kenn nur den Trick System.out.println(args[0]); aber da kann ich doch nur ein Argument übergeben ;(
3 Antworten
args ist ein Array aus Strings. Wenn du zwei Argumente übergibst sind in diesem Array auch zwei Strings enthalten.
Du gehst dann also mit einem for-Loop einfach durch den Array, aber du beginnst hinten.
for(int i = 1; i <= args.length; i++) System.out.println( args[args.length-i] );
oder alternativ:
for(int i = args.length-1; i >= 0; i--) System.out.println( args[i] );
Das ist ein int.
args.length gibt die Menge an Strings an, die im Array enthalten sind.
Bei ["Hallo", "wie", "gehts", "?"] wären das beispielsweise 4.
Int.
Wissenswertes am Rande...
args.length kann unter Windows nie größer als 4093 sein.
Die Maximallänge einer Windows Kommandozeile ist 8191.
Das bedeutet, Dein Text kann nicht beliebig lang sein. (Auch wenn 8000 eine Menge scheint, bin ich schon mit diesem Limit in Konflikt geraten.)
du liest den text aus der konsole raus und speicherst es in einem string.
danach gehst du mit einer forschleife jedes einzelne zeichen des strings mit substring() durch, aber du fängst vom letzten zeichen (string.length) an und gehst dann immer ein zeichen zurück
Du hast dich da ein bisschen vertan, schau dir mal das Beispiel in der Frage an.
Nicht der ganze Text soll umgedreht werden sondern nur die Reihenfolge der Wörter.
stimmt, dann ist deine methode natürlich sinnvoller bzw. meine nicht ganz richtig/ungünstig
mit welchem Datentyp kann man args.length initialisieren ?