English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java Grund教程

Java Flusskontrolle

Java Array

Java objektorientiert (I)

Java objektorientiert (II)

Java objektorientiert (III)

Java Ausnahmebehandlung

Java Liste (List)

Java Queue (Warteschlange)

Java Map-Kollektion

Java Set-Kollektion

Java Eingabe-Ausgabe(I/O)

Java Reader/Writer

Andere Themen von Java

Java Scanner Klasse

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.

Beispiel1:Lesen Sie eine Zeile Text mit dem Scanner

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.

Importieren Sie die Scanner-Klasse

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;

Erstellen Sie ein Scan-Programmobjekt mit Java

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.

Java Scanner Eingabemethoden

Die Scanner-Klasse bietet verschiedene Methoden, die es uns ermöglichen, verschiedene Arten von Eingaben zu lesen.

MethodeBeschreibung
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

Beispiel2:Java Scanner nextInt()

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.

Beispiel3:Java Scanner nextDouble() Methode

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.

Beispiel4:Java Scanner next() Methode

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).

Beispiel5: Methode nextLine() des Java Scanners

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 BigInteger und BigDecimal

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

Beispiel4: Lesen von BigInteger und BigDecimal

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.

Wie arbeitet der Java-Scanner

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.