Skip to main content

So funktioniert die Java Konsoleneingabe über den Scanner


java programmierung konsoleneingabe scanner

Es wird Zeit für die erste Java Konsoleneingabe.
Und diese Eingaben machst du über den Java Scanner.

Was ist das?
Der Scanner ist eine vorgefertigte Java Klasse, welche Java mit seiner API anbietet.

Das heißt du musst nichts selbst erschaffen.
Du musst nur wissen, wie du darauf zugreifst.

Erst einmal musst du einen Scanner anlegen.

Das heißt:
Für eine Konsoleneingabe, musst du ein Objekt der Scanner Klasse anlegen.

Und so kannst du ein neues Scanner Objekt erzeugen.

Die Scanner Klasse befindet sich in einem Paket.
Und dieses Paket befindet sich in der bereits angesprochenen API Bibliothek.

Ich nutze die Chance und schau einmal in den Java API Docs nach.

Java-Konsoleneingabe-Standardklassen

Ganz links siehst du die einzelnen Java Klassen aufgelistet.
Die Liste ist alphabetisch sortiert.
Scroll doch einfach einmal nach unten bis zur Scannerklasse.

In der Dokumentation steht schon alles, was du brauchst.

Ganz oben siehst du, in welchem Paket sich der Scanner befindet.
Dieses package musst du über die Importanweisung in dein Java Projekt importieren.

Java-Konsoleneingabe-Package

Weiter unten siehst du schon ein komplettes Beispiel.
Java-Konsoleneingabe-Beispiel

Dieses Beispiel kannst du komplett übernehmen.


import java.util.Scanner; //Importanweisung für den Scanner
 
public class ScannerTest {
 
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // neues Scanner-Objekt sc
int i = sc.nextInt(); // lokale Variable speichert die Eingabe
}
}

Jetzt lass und das Ganze einmal näher anschauen.

Du legst als erstes das Scanner-Objekt an.
Im Beispiel heißt diese Referenzvariable „rc“.

Und dann rufst du den entsprechenden Konstruktor auf, um ein neues Objekt zu erschaffen.
In der Parameterliste des Scanner-Konstruktors, siehst du die „System.in“ Anweisung.

Diese bewirkt, dass eine Konsoleneingabe eingelesen und ausgewertet wird.

Den Wert, welchen du eingeben wirst, wird dann in der lokalen Variable gespeichert.
Der Wertebereich muss Integer sein, da die Variable so deklariert wurde.

Die Methode „nextInt()“ bewirkt das Lesen.

Falls du jetzt auf „Run“ klickst und das Programm startest, passiert noch nichts weltbewegendes.

Lass uns das ändern.

Lass uns die Eingabe in der Java Konsole ausgeben.

Wir benötigen zwei Dinge.

  1. Eine Eingabeaufforderung, welche nach dem Programmstart den User auffordert eine Zahl einzugeben.
  2. Und eine Konsolenausgabe, welche dann die zuvor eingegebene Zahl zurückgibt.

Um Fehler zu vermeiden, sollte in der Eingabeaufforderung schon der Wertebereich stehen.
Und für Integer-Werte kannst du diesen über die Klassenkonstanten von Integer abrufen.

  • Integer.MIN_VALUE
  • Und Integer.MAX_VALUE

Und so könnte der Java Code aussehen:


import java.util.Scanner; //Importanweisung für die Scanner Klasse
 
public class ScannerTest {
 
public static void main(String[] args) {
System.out.println("Gib eine Zahl zwichen "+Integer.MIN_VALUE+" und "+Integer.MAX_VALUE+" ein!");
Scanner sc = new Scanner(System.in); 
int i = sc.nextInt(); 
System.out.println("Die Zahl "+i+" wurde eingeben.");
}
}

Klicke auf „Run“.
Zum Programmstart wirst du aufgefordert eine Zahl einzugeben.

Gib eine x-beliebige Zahl im entsprechenden Datenbereich ein und klicke „Return“ auf deiner Tastatur.
Diese Zahl wird dir zurückgegeben.

Java-Konsoleneingabe-Zahl-einlesen

Nicht schlecht, oder?

Aber da geht noch mehr.

Die nextInt() Methode gibt lediglich den nächsten Integer-Wert auf der Konsole zurück.

Die Java Konsoleneingabe funktioniert nicht nur mit einer Zahl.
Du kannst auch mehr Zahlen übergeben.

Zum Beispiel:
Gib in der Java Konsole einmal zwei Zahlen ein, beispielswiese 17 und 4.

Die Ausgabe ist dann 17.

Wieso das?
Der Name „nextInt()“ sagt es schon.
Es wird immer der nächste Integer-Wert gespeichert.
Java beginnt ganz vorn und sagt sich: „Jawohl 17 ist eine Zahl und der Wert wird gespeichert.“

Falls du jetzt der Konsole zwei Zahlen mitgeben willst, benötigst du eine zweite Variable.
So wie hier:


import java.util.Scanner;
 
public class ScannerTest {
 
public static void main(String[] args) {
System.out.println("Gib zwei Zahlen zwischen "+Integer.MIN_VALUE+" und "+Integer.MAX_VALUE+" ein!");
Scanner sc = new Scanner(System.in); 
int i = sc.nextInt(); 
int j = sc.nextInt();
System.out.println("Erste Zahl: "+i);
System.out.println("Zweite Zahl: "+j);
}
}

In der Java Dokumentation kannst du dir alle Methoden und alle Konstruktoren der Scanner Klasse einmal anschauen.
Du kannst:

  • float-Werte über nextFloat() speichern.
  • Text-Werte über next() speichern.
  • usw.

Zusammenfassung:

  • Eine Java Konsoleneingabe machst du über die Scanner Klasse.
  • Diese Klasse besteht bereits.
    Du musst lediglich das package importieren.
    Und dann kannst du einen neuen Scanner anlegen.
  • Dabei bietet dir die Scanner Klasse ein Menge Konstruktoren und auch Methoden an.
  • Um eine Konsoleneingabe auf der Java Konsole entgegenzunehmen, benötigst du die Variable „in“ aus der System-Klasse.
    Und diese übergibst du direkt im Konstruktor des Scanners.
  • Durch Methoden wie „nextInt()“, „nextFloat()“ usw. kannst du deine Konsoleneingaben lesen und in Variablen abspeichern.

Ähnliche Beiträge