In diesem Tutorial lernen wir anhand von Beispielen den Java-Scanner und seine Methoden kennen.
Die Scanner
Klasse des java.util
Pakets wird zum Lesen von Eingabedaten aus verschiedenen Quellen wie Eingabestreams, Benutzern, Dateien usw. verwendet. Nehmen wir ein Beispiel.
Beispiel 1: Lesen einer Textzeile mit dem Scanner
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // takes input from the keyboard String name = input.nextLine(); // prints the name System.out.println("My name is " + name); // closes the scanner input.close(); ) )
Ausgabe
Geben Sie Ihren Namen ein: Kelvin Mein Name ist Kelvin
Beachten Sie im obigen Beispiel die Zeile
Scanner input = new Scanner(System.in);
Hier haben wir ein Objekt mit Scanner
benannter Eingabe erstellt.
Der System.in
Parameter wird verwendet, um Eingaben von der Standardeingabe zu übernehmen. Es funktioniert genauso wie das Eingeben von Eingaben über die Tastatur.
Wir haben dann die nextLine()
Methode der Scanner
Klasse verwendet, um eine Textzeile vom Benutzer zu lesen.
Nachdem Sie eine Vorstellung davon haben Scanner
, wollen wir mehr darüber erfahren.
Scannerklasse importieren
Wie wir aus dem obigen Beispiel sehen können, müssen wir das java.util.Scanner
Paket importieren , bevor wir die Scanner
Klasse verwenden können.
import java.util.Scanner;
Weitere Informationen zum Importieren von Paketen finden Sie unter Java-Pakete.
Erstellen Sie ein Scannerobjekt in Java
Sobald wir das Paket importiert haben, können wir wie folgt Scanner
Objekte erstellen .
// read input from the input stream Scanner sc1 = new Scanner(InputStream input); // read input from files Scanner sc2 = new Scanner(File file); // read input from a string Scanner sc3 = new Scanner(String str);
Hier haben wir Objekte der Scanner
Klasse erstellt, die Eingaben von InputStream, File und String lesen.
Java-Scanner-Methoden zur Eingabe
Die Scanner
Klasse bietet verschiedene Methoden, mit denen wir Eingaben verschiedener Typen lesen können.
Methode | Beschreibung |
---|---|
nextInt() | liest einen int Wert vom Benutzer |
nextFloat() | liest einen float Wert vom Benutzer |
nextBoolean() | liest einen boolean Wert vom Benutzer |
nextLine() | liest eine Textzeile vom Benutzer |
next() | liest ein Wort vom Benutzer |
nextByte() | liest einen byte Wert vom Benutzer |
nextDouble() | liest einen doubl e-Wert vom Benutzer |
nextShort() | liest einen short Wert vom Benutzer |
nextLong() | liest einen long Wert vom Benutzer |
Beispiel 2: Java Scanner nextInt ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates a Scanner object Scanner input = new Scanner(System.in); System.out.println("Enter an integer: "); // reads an int value int data1 = input.nextInt(); System.out.println("Using nextInt(): " + data1); input.close(); ) )
Ausgabe
Geben Sie eine Ganzzahl ein: 22 Using nextInt (): 22
Im obigen Beispiel haben wir die nextInt()
Methode verwendet, um einen ganzzahligen Wert zu lesen.
Beispiel 3: Java Scanner nextDouble ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter Double value: "); // reads the double value double value = input.nextDouble(); System.out.println("Using nextDouble(): " + value); input.close(); ) )
Ausgabe
Geben Sie den doppelten Wert ein: 33,33 Mit nextDouble (): 33,33
Im obigen Beispiel haben wir die nextDouble()
Methode verwendet, um einen Gleitkommawert zu lesen.
Beispiel 4: Java Scanner next ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire word String value = input.next(); System.out.println("Using next(): " + value); input.close(); ) )
Ausgabe
Geben Sie Ihren Namen ein: Jonny Walker Mit next (): Jonny
Im obigen Beispiel haben wir die next()
Methode verwendet, um eine Zeichenfolge vom Benutzer zu lesen.
Hier haben wir den vollständigen Namen angegeben. Die next()
Methode liest jedoch nur den Vornamen.
Dies liegt daran, dass die next()
Methode Eingaben bis zum Leerzeichen liest . Sobald das Leerzeichen gefunden wird, wird die Zeichenfolge zurückgegeben (mit Ausnahme des Leerzeichens).
Beispiel 5: Java Scanner nextLine ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire line String value = input.nextLine(); System.out.println("Using nextLine(): " + value); input.close(); ) )
Ausgabe
Geben Sie Ihren Namen ein: Jonny Walker Mit nextLine (): Jonny Walker
Im ersten Beispiel haben wir die nextLine()
Methode verwendet, um eine Zeichenfolge vom Benutzer zu lesen.
Im Gegensatz dazu liest next()
die nextLine()
Methode die gesamte Eingabezeile einschließlich Leerzeichen. Die Methode wird beendet, wenn sie auf ein Zeichen der nächsten Zeile stößt .
Recommended Reading: Java Scanner skipping the nextLine().
Java Scanner with BigInteger and BigDecimal
Java scanner can also be used to read the big integer and big decimal numbers.
- nextBigInteger() - reads the big integer value from the user
- nextBigDecimal() - reads the big decimal value from the user
Example 4: Read BigInteger and BigDecimal
import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter a big integer: "); // reads the big integer BigInteger value1 = input.nextBigInteger(); System.out.println("Using nextBigInteger(): " + value1); System.out.print("Enter a big decimal: "); // reads the big decimal BigDecimal value2 = input.nextBigDecimal(); System.out.println("Using nextBigDecimal(): " + value2); input.close(); ) )
Output
Enter a big integer: 987654321 Using nextBigInteger(): 987654321 Enter a big decimal: 9.55555 Using nextBigDecimal(): 9.55555
In the above example, we have used the java.math.BigInteger
and java.math.BigDecimal
package to read BigInteger
and BigDecimal
respectively.
Working of Java Scanner
Die Scanner
Klasse liest eine ganze Zeile und unterteilt die Zeile in Token. Token sind kleine Elemente, die für den Java-Compiler eine Bedeutung haben. Beispielsweise,
Angenommen, es gibt eine Eingabezeichenfolge:
He is 22
In diesem Fall liest das Scannerobjekt die gesamte Zeile und teilt die Zeichenfolge in Token auf: " He ", " is " und " 22 ". Das Objekt durchläuft dann jedes Token und liest jedes Token mit seinen verschiedenen Methoden.
Hinweis : Standardmäßig wird Leerzeichen zum Teilen von Token verwendet.