Java Tutorial Teil 7 – Textausgaben und Benutzereingaben

Beim letzten Teil des Tutorials ging es um Schleifen. Wie dort erklärt, könnten diese genutzt werden, um den Nutzer bei unzulässigen Eingaben um eine erneute Eingabe zu bitten. Passend dazu möchte ich darum diesmal darauf eingehen, wie überhaupt Ausgaben und Nutzereingaben bei Java funktionieren.

Textausgaben

Das Konstrukt System.out.println(…); solltest du mittlerweile schon kennen. Der übergebene Parameter wird hiermit auf der Konsole ausgegeben. System.out.println(…); erzeugt mit jeder Ausgabe auch einen Zeilenumbruch. Das ist nicht immer gewünscht, weshalb es auch den Befehl System.out.print(…); gibt, welcher keinen Zeilenumbruch erzeugt. Bisher haben wir als Parameter nur Strings (Zeichenketten) oder primitive Datentypen übergeben. Tatsächlich können wir diese aber auch mit dem +-Operator kombinieren. So würde System.out.println(„Ein “ + „Text“); aus den beiden Strings einen neuen erzeugen und diesen dann ausgeben. Entsprechend würde System.out.println(„Ergebnis = “ + 6); zu der Ausgabe Ergebnis = 6 führen.

Es ist auch möglich, Rechnungen durchzuführen, wobei man hier etwas aufpassen muss, da das + nun zwei Bedeutungen haben kann: entweder soll addiert werden oder Dinge miteinander zu einem String kombiniert werden. Wenn innerhalb vom System.out.println(…); nur primitive Datentypen stehen, ist das + immer der ganz normale Additionsoperator. Sobald ein String auftaucht, wird ab dieser Stelle das + immer als Verkettungsoperator angesehen, außer wenn das + bei einer Rechnung in Klammern steht. Das klingt erst einmal kompliziert, sollte aber durch das folgende Beispiel klarer werden:

In Zeile 3 wird mit einem String begonnen, weshalb die folgenden + einfach nur alles verketten. Die Ausgabe ist darum Text12.
In Zeile 4 kommen zuerst primitive Datentypen. Das erste + addiert darum. Das nächste + verkettet dann das Ergebnis mit dem String, weshalb die Ausgabe 3Text lautet.
In Zeile 5 wird beides kombiniert. Das erste + addiert, die nächsten verketten aber wegen des Strings. Die Ausgabe lautet 3Text34.
Zeile 6 zeigt, dass durch Klammerung die Addition erzwungen werden kann. Die Ausgabe ist 3Text7.
In Zeile 7 ist zu sehen, dass auch andere primitive Datentypen als int genutzt werden können. Hier ist das Ergebnis 66.5, weil das char ‚A‘ als ein ASCII-Zahlenwert betrachtet wird (A hat die Nummer 65).
Zeile 8 zeigt zuletzt noch, dass ‚A‘ beim Verketten wie ein String behandelt wird. Die Ausgabe ist TextA.

Escape-Sequenzen

Manchmal möchte man in einem String bestimmte Dinge wie einen Zeilenumbruch oder einen Tabulator. Dafür gibt es Escape-Sequenzen, die mit einem Backslash beginnen. Nicht alle davon braucht man oft, es gibt zum Beispiel:

  • \n steht für eine neue Zeile.
  • \t steht für einen horizontalen Tabulator.
  • \“ steht für ein doppeltes Anführungszeichen.
  • \‘ steht für ein einfaches Anführungszeichen.
  • \\ steht für einen Backslash.

Benutzereingaben

An dieser Stelle möchte ich nur auf zwei einfache Möglichkeiten eingehen, wie man Benutzereingaben in ein Programm einbaut. Die Eingaben erfolgen durch die Konsole.

Kommandozeilen-Argumente

Wenn man das Programm in der Konsole per java Programmname startet, hat man eigentlich auch die Möglichkeit, Parameter mit zu übergeben. Diese schreibt man einfach nach dem Namen der Datei. Innerhalb des Programms kann man dann in der main-Methode auf sie zugreifen.

Wie du siehst, erfolgt der Zugriff recht einfach. Mit args[0] wird auf den ersten Parameter zugegriffen, mit args[1] auf den zweiten und mit args[2] auf den dritten. Die Parameter werden immer als Strings betrachtet. Übrigens könnte man auch in den Zeilen 2 und 3 args mit einem beliebigen anderen Namen ersetzen, args (was für arguments steht) ist aber eigentlich Konvention. Die Konsoleneingabe des Benutzers (erste Zeile) und Ausgabe des Programms (zweite Zeile) kann hier so aussehen:

Benutzereingaben bei Java durch Kommandozeilen-Argumente.

Benutzereingaben bei Java durch Kommandozeilen-Argumente.

Beachte, dass ein Fehler entsteht, wenn du im Programm auf Parameter zuzugreifen versuchst, obwohl gar keine übergeben wurden. Durch args.length erhältst du die Anzahl an übergebenen Parametern. Also zum Beispiel:

 

Scanner

Die zweite Möglichkeit ist nur etwas komplizierter und dafür aber auch mächtiger. Hier wird die Klasse Scanner benutzt.

Mit import können bei Java Klassen und Pakete geladen werden, in diesem Fall nutzen wir die Klasse Scanner. Das Importieren passiert in Zeile 1. In Zeile 5 wird dann eine sogenannte Instanz der Klasse erzeugt und erhält den Namen input. Mit Hilfe der Variable input können im Folgenden Benutzereingaben eingelesen werden. In Zeile 6 wird mit input.next() gewartet, bis der Nutzer eine Eingabe gemacht hat. Die Eingabe wird danach in der Variable a gespeichert. Bei Zeile 7 passiert im Prinzip das gleiche, hier muss die Eingabe aber ein int sein. Äquivalent dazu gibt es auch nextBoolean, nextByte, nextDouble, nextLong oder nextShort.

Zur Übersicht von allen Teilen des Tutorials

Vielleicht gefällt dir auch...

2 Antworten

  1. 13. Mai 2015

    […] Weiter zu Teil 6 – Textausgaben und Benutzereingaben […]

  2. 13. Mai 2015

    […] Textausgaben und Benutzereingaben: Die meisten Programme leben davon, dass der Nutzer mit dem Programm interagieren kann. Textausgaben und Benutzereingaben sind also wichtige Grundlagen. […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.