English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Tutorial lernen wir anhand von Beispielen Java Scanner und seine Methoden kennen.
Die Klasse PrintWriter im Paket java.io kann verwendet werden, um Ausgabedaten in einer normal lesbaren Form (Text) zu schreiben.
Die Klasse Scanner im Paket java.util wird verwendet, um Eingabedaten von verschiedenen Quellen (z.B. Eingabestrom, Benutzer, Dateien usw.) zu lesen. Lassen Sie uns ein Beispiel geben.
import java.util.Scanner; class Main { public static void main(String[] args) { //Erstellen Sie ein Objekt Scanner Scanner input = new Scanner(System.in); System.out.print("Geben Sie Ihren Namen ein: "); // Empfangen Sie Eingaben von der Tastatur String name = input.nextLine(); // Geben Sie den Namen aus System.out.println("Mein Name ist " + name); // Schließt den Scanner input.close(); } }
Ausgaberesultat
Geben Sie Ihren Namen ein: Jack Mein Name ist Jack
Bitte beachten Sie die folgenden Zeilen im obigen Beispiel
Scanner input = new Scanner(System.in);
Hier erstellen wir ein Scanner-Objekt namens input.
Der Parameter System.in wird verwendet, um Eingaben aus der Standard-Eingabe zu erhalten. Das ist so, als ob Sie von der Tastatur Eingaben erhalten.
Dann lesen wir eine Zeile Text vom Benutzer mit dem nextLine()-Methoden der Scanner-Klasse ein.
Nun haben Sie eine gewisse Vorstellung von Scanner, lassen Sie uns ihn weiter erkunden.
Aus dem obigen Beispiel ist zu sehen, dass wir zunächst das Paket java.util.Scanner importieren müssen, bevor wir die Klasse Scanner verwenden können.
import java.util.Scanner;
Wie erwähnt, können Sie nach dem Import des Pakets einen Scanner-Objekt erstellen.
//Eingaben aus einem Eingabestrom lesen Scanner sc1 = new Scanner(InputStream input); //Eingaben aus einer Datei lesen Scanner sc2 = new Scanner(File file); //Eingaben aus einer Zeichenkette lesen Scanner sc3 = new Scanner(String str);
Hier haben wir Objekte der Scanner-Klasse erstellt, die jeweils ausInputStream,Eingaben von Dateien und Strings lesen.
Die Scanner-Klasse bietet verschiedene Methoden, die es uns ermöglichen, verschiedene Arten von Eingaben zu lesen.
Methode | Beschreibung |
---|---|
nextInt() | Lesen Sie einen int-Wert vom Benutzer |
nextFloat() | Lesen Sie einen float-Wert vom Benutzer |
nextBoolean() | Lesen Sie einen boolean-Wert vom Benutzer |
nextLine() | Lesen Sie eine Zeile Text vom Benutzer |
next() | Lesen Sie ein Wort vom Benutzer |
nextByte() | Lesen Sie einen byte-Wert vom Benutzer |
nextDouble() | Lesen Sie einen double-Wert vom Benutzer |
nextShort() | Lesen Sie einen short-Wert vom Benutzer |
nextLong() | Lesen Sie einen long-Wert vom Benutzer |
import java.util.Scanner; class Main { public static void main(String[] args) { //Erstellen Sie ein Scanner-Objekt Scanner input = new Scanner(System.in); System.out.println("Geben Sie eine Ganzzahl ein: ") //Lesen Sie einen int-Wert int data1 = input.nextInt(); System.out.println("Verwenden Sie nextInt(): ") + data1); input.close(); } }
Ausgaberesultat
Geben Sie eine Ganzzahl ein: 22 Verwenden Sie nextInt(): 22
Im obigen Beispiel haben wir die Methode nextInt() verwendet, um Ganzzahlwerte zu lesen.
import java.util.Scanner; class Main { public static void main(String[] args) { //Erstellen eines Scanner-Objekts Scanner input = new Scanner(System.in); System.out.print("Geben Sie einen Double-Wert ein: ") //Lesen Sie einen Double-Wert double value = input.nextDouble(); System.out.println("Verwenden Sie nextDouble(): ") + value); input.close(); } }
Ausgaberesultat
Geben Sie einen Double-Wert ein: 33.33 Verwenden Sie nextDouble(): 33.33
Im obigen Beispiel haben wir die Methode nextDouble() verwendet, um Fließkommawerte zu lesen.
import java.util.Scanner; class Main { public static void main(String[] args) { //Erstellen eines Scanner-Objekts Scanner input = new Scanner(System.in); System.out.print("Geben Sie Ihren Namen ein: "); //Lesen Sie den gesamten Wort String value = input.next(); System.out.println("Verwenden Sie next(): ") + value); input.close(); } }
Ausgaberesultat
Geben Sie Ihren Namen ein: Jonny Walker Verwenden Sie next(): Jonny
Im obigen Beispiel haben wir die Methode next() verwendet, um vom Benutzer einen String zu lesen.
Hier haben wir den vollständigen Namen bereitgestellt. Allerdings liest die Methode next() nur den Namen.
Dies liegt daran, dass die Methode next() den Eingang bis zu diesem Punkt liestLeerzeichenZeichen. Sobald ein Leerzeichen erreicht wird, wird eine Zeichenkette zurückgegeben (ohne Leerzeichen).
import java.util.Scanner; class Main { public static void main(String[] args) { //Erstellen eines Scanner-Objekts Scanner input = new Scanner(System.in); System.out.print("Geben Sie Ihren Namen ein: "); //Lesen einer ganzen Zeile String value = input.nextLine(); System.out.println("Verwenden Sie nextLine(): "); + value); input.close(); } }
Ausgaberesultat
Geben Sie Ihren Namen ein: Jonny Walker Verwenden Sie nextLine(): Jonny Walker
Im ersten Beispiel haben wir die Methode nextLine() verwendet, um vom Benutzer einen String zu lesen.
Im Gegensatz zu next() liest die Methode nextLine() die gesamte Eingabezeile einschließlich Leerzeichen. Die Methode wird beendet, wenn sie das nächste Zeichensatzzeichen \n trifft.
Java Scanner kann auch zum Lesen großer Ganzzahlen und Dezimalzahlen verwendet werden.
nextBigInteger() - Von Benutzer großen Ganzzahl Wert lesen
nextBigDecimal() - Von Benutzer großen Dezimalzahl Wert lesen
import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; class Main { public static void main(String[] args) { //Erstellen eines Scanner-Objekts Scanner input = new Scanner(System.in); System.out.print("Geben Sie einen großen Ganzzahl ein: "); //Lesen eines großen Ganzzahls BigInteger value1 input.nextBigInteger(); System.out.println("Verwenden Sie nextBigInteger(): "); + value1); System.out.print("Geben Sie einen großen Dezimalzahl ein: "); //Lesen eines großen Dezimalzahls BigDecimal value2 input.nextBigDecimal(); System.out.println("Verwenden Sie nextBigDecimal(): ") + value2); input.close(); } }
Ausgaberesultat
Geben Sie eine große Ganzzahl ein: 987654321 Verwenden Sie nextBigInteger(): 987654321 Geben Sie einen großen Dezimalzahl ein: 9.55555 Verwenden Sie nextBigDecimal(): 9.55555
Im obigen Beispiel lesen wir BigInteger und BigDecimal mit dem Paket java.math.BigInteger und java.math.BigDecimal.
Der Scanner liest die gesamte Zeile und teilt die Zeile in Zeichenfolgen auf. Tokens sind kleine Elemente, die für den Java-Compiler von Bedeutung sind. Zum Beispiel
Angenommen, es gibt einen Eingabezeichenfolgen:
He ist 22
In diesem Fall liest das Scanner-Objekt die gesamte Zeile und teilt den String in Tokens auf: „ He ”,“ is ”und” 22 ”。Dann durchläuft das Objekt jeden Token und liest jeden Token mit seinen verschiedenen Methoden.
Beachten Sie:Standardmäßig werden Leerzeichen verwendet, um Markierungen zu trennen.