Inhaltsverzeichnis:
- Importieren der Scanner-Klasse in Java
- Deklarieren und Erstellen eines Scanner-Objekts in Java
- Eingabe erhalten
Video: Notendurchschnitt berechnen - Einfache Java Programme 1 ● Gehe auf SIMPLECLUB.DE/GO 2024
Bis Java 1. 5 war es nicht einfach, Texteingaben vom Benutzer in einem konsolenbasierten Java-Programm zu erhalten. Aber mit Java 1. 5 wurde eine neue Klasse - genannt
Scanner
- eingeführt, um die Aufgabe zu vereinfachen, Eingaben vom Benutzer zu erhalten. Hier verwenden Sie die
Scanner
-Klasse, um einfache Eingabewerte vom Benutzer zu erhalten. Die Techniken, die ich hier vorstelle, werden in vielen der im Rest dieses Buches gezeigten Programme verwendet.
Wenn Sie eine ältere Version von Java verwenden, sollten Sie dies immer noch lesen, da viele Programme die
Scanner
-Klasse verwenden.
Das folgende einfache Programm verwendet die
Scanner
-Klasse, um einen ganzzahligen Wert vom Benutzer zu lesen. Anschließend zeigt es den Wert an der Konsole an, um zu überprüfen, ob das Programm den vom Benutzer eingegebenen Wert erhalten hat. Hier ein Beispiel für das Konsolenfenster für dieses Programm:
Geben Sie eine ganze Zahl ein: 5
Sie haben 5 eingegeben.
Das Programm beginnt mit der Anzeige der Meldung
Geben Sie eine ganze Zahl ein:
in der ersten Zeile. Dann wartet es darauf, dass Sie eine Nummer eingeben. Wenn Sie eine Nummer eingeben (z. B. 5) und die Eingabetaste drücken, wird in der zweiten Zeile die Bestätigungsmeldung (
Sie haben 5
eingegeben.) Angezeigt.
importiert Java. Nutz. Scanner; @@ ra1
public class ScannerApp
{
statisch Scanner sc = neuer Scanner (System. In); @@ ra6
public static void main (String [] Argumente)
{
System. aus. print ("Geben Sie eine ganze Zahl ein:"); @@ ra10
int x = sc. nextInt (); @@ ra11
System. aus. println ("Sie haben" + x + "eingegeben.); @@ ra12
}
}
Importieren der Scanner-Klasse in Java
Bevor Sie die
Scanner
-Klasse in einem Programm verwenden können, müssen Sie sie importieren. Dazu codieren Sie am Anfang des Programms eine Anweisung
import
vor der Klassendeklaration:
Java importieren. Nutz. Scanner;
Beachten Sie, dass
java
und
util
nicht groß geschrieben werden, aber
Scanner
ist.
Wenn Sie andere Klassen im
Java verwenden. util
package, können Sie das gesamte Paket importieren, indem Sie die Anweisung
import
wie folgt codieren:
java importieren. Nutz. *;
Deklarieren und Erstellen eines Scanner-Objekts in Java
Bevor Sie die
Scanner
-Klasse zum Lesen von Eingaben von der Konsole verwenden können, müssen Sie eine
Scanner
-Variable deklarieren und eine Instanz erstellen der
Scanner
-Klasse. Sie können die Variable
Scanner
als Klassenvariable erstellen und das
Scanner
-Objekt in der Klassenvariablen-Initialisierung erstellen (siehe Zeile 6 des obigen Programms):
static Scanner sc = neuer Scanner (System. in);
Auf diese Weise können Sie die Variable
sc
in jeder Methode in der Klasse verwenden.
Um ein
Scanner
-Objekt zu erstellen, verwenden Sie das Schlüsselwort
new
, gefolgt von einem Aufruf des Konstruktors der
Scanner
-Klasse. Beachten Sie, dass für die
Scanner
-Klasse ein Parameter erforderlich ist, der den -Eingabestrom angibt, von dem die Eingabe stammt. Sie können
System verwenden. in
hier, um die Eingabe der Standardtastaturkonsole anzugeben.
Eingabe erhalten
Um einen Eingabewert vom Benutzer zu lesen, können Sie eine der unten aufgeführten Methoden der
Scanner
-Klasse verwenden. Wie Sie sehen, hat der primitive Datentyp eine separate Methode.
Methode | Erläuterung |
boolean nextBoolean ()
|
Liest einen
booleschen
-Wert vom Benutzer. |
byte nextByte ()
|
Liest einen
Byte
Wert vom Benutzer. |
double nextDouble ()
|
Liest einen
double
Wert vom Benutzer. |
float nextFloat ()
|
Liest einen
float
Wert vom Benutzer. |
int nextInt ()
|
Liest einen
int
Wert vom Benutzer. |
String nextLine ()
|
Liest einen
String
Wert vom Benutzer. |
lang nextLong ()
|
Liest einen
langen
Wert vom Benutzer. |
short nextShort ()
|
Liest einen
kurzen
Wert vom Benutzer. |
Beachten Sie in der ersten Spalte der Tabelle, dass jede Methodenauflistung mit dem Typ des Werts beginnt, der von der Methode zurückgegeben wird. Die
nextInt
-Methode gibt beispielsweise einen Wert
int
zurück. Beachten Sie außerdem, dass jede Methode mit einem leeren Satz von Klammern endet. Das bedeutet, dass diese Methoden keine Parameter benötigen. Wenn eine Methode Parameter erfordert, werden die Parameter in diesen Klammern aufgeführt.
Da diese Methoden einen Wert vom Benutzer lesen und den Wert zurückgeben, verwenden Sie diese häufig in Anweisungen, die den Wert einer Variablen zuweisen. Zeile 11 liest beispielsweise ein
int
und ordnet es einer Variablen mit dem Namen
x
zu.
Wenn die Methode
nextInt
ausgeführt wird, wartet das Programm darauf, dass der Benutzer einen Wert in das Konsolenfenster eingibt. Um den Benutzer wissen zu lassen, welche Art von Eingabe das Programm erwartet, sollten Sie normalerweise das
-System aufrufen. aus.
Methode drucken, bevor Sie eine
Scanner
-Methode aufrufen, um eine Eingabe zu erhalten. Zeile 10 ruft
System auf. aus.
drucken, um die Nachricht
anzuzeigen Geben Sie eine ganze Zahl ein:
in der Konsole. Auf diese Weise weiß der Benutzer, dass das Programm auf eine Eingabe wartet.
Wenn der Benutzer einen Wert eingibt, der nicht in den richtigen Typ konvertiert werden kann, stürzt das Programm ab, was bedeutet, dass es abrupt beendet wird. Wenn das Programm abstürzt, zeigt es eine kryptische Fehlermeldung an, die angibt, was den Fehler verursacht hat. Wenn Sie z. B.
drei
anstelle einer tatsächlichen Zahl eingeben, sieht das Konsolenfenster etwa so aus:
Geben Sie eine Ganzzahl ein: drei Ausnahme im Thread "main" java. Nutz. InputMismatchException
bei Java. Nutz. Scanner. throwFor (Scanner. java: 819)
bei Java. Nutz. Scanner. nächste (Scanner. Java: 1431)
bei Java. Nutz. Scanner. nextInt (Scanner. java: 2040)
bei Java. Nutz. Scanner. nextInt (Scanner. java: 2000)
bei ScannerApp.main (ScannerApp. java: 11)
Diese Nachricht zeigt an, dass eine Ausnahme namens
InputMismatchException
aufgetreten ist, was bedeutet, dass das Programm eine ganze Zahl erwartet, aber stattdessen etwas anderes erhalten hat… Wenn Sie nicht wissen, wie Sie Ausnahmen wie diese vorsehen können, damit das Programm eine freundlichere Nachricht anzeigen kann und dem Benutzer eine weitere Möglichkeit gibt, einen korrekten Wert einzugeben, müssen Sie sich damit abfinden, dass der Benutzer falsche Daten eingibt. Ihr Programm stürzt ungünstig ab.
Sie können verhindern, dass
nextInt
und ähnliche Methoden mit falschen Eingabedaten abstürzen, indem Sie zunächst eine der hier aufgelisteten Methoden verwenden, um die nächste Eingabe zu testen und sicherzustellen, dass sie gültig ist.
Methode | Erläuterung |
boolean hasNextBoolean ()
|
Gibt
wahr
zurück, wenn der nächste vom Benutzer eingegebene Wert ein gültiger Wert ist < Boolescher Wert
.
boolean hasNextByte () |
Gibt
|
wahr
zurück, wenn der nächste vom Benutzer eingegebene Wert ein gültiger Wert
Byte
ist.
boolean hasNextDouble () |
Gibt
|
wahr
zurück, wenn der nächste vom Benutzer eingegebene Wert ein gültiger Wert
double
ist.
boolean hasNextFloat () |
Gibt
|
wahr
zurück, wenn der nächste vom Benutzer eingegebene Wert ein gültiger Wert
float
ist.
boolean hasNextInt () |
Gibt
|
wahr
zurück, wenn der nächste vom Benutzer eingegebene Wert ein gültiger Wert
int
ist.
boolean hasNextLong () |
Gibt
|
wahr
zurück, wenn der nächste vom Benutzer eingegebene Wert ein gültiger
langer
Wert ist.
boolean hasNextShort () |
Gibt
|
wahr
zurück, wenn der nächste vom Benutzer eingegebene Wert ein gültiger
kurzer
Wert ist.
|