Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java Scanner meistern: Umfassender Leitfaden mit praktischen Beispielen

Java Scanner meistern

Entdecken Sie, wie Sie Javas Scanner Klasse verwenden, um Text, Zahlen und komplexe Typen aus verschiedenen Quellen zu lesen, unterstützt durch klare, reale Beispiele.

Die Scanner Klasse in java.util ermöglicht es Ihnen, Eingaben aus Streams, Dateien, Strings und der Konsole zu erfassen. Im Folgenden gehen wir die Kernverwendungsmuster durch.

Beispiel 1: Eine vollständige Textzeile lesen

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        // Scanner erstellen, der von Standard Input liest
        Scanner input = new Scanner(System.in);
        System.out.print("Geben Sie Ihren Namen ein: ");
        // Ganze Zeile lesen, einschließlich Leerzeichen
        String name = input.nextLine();
        System.out.println("Mein Name ist " + name);
        input.close();
    }
}

Ausgabe

Geben Sie Ihren Namen ein: Kelvin
Mein Name ist Kelvin

Beachten Sie die Zeile Scanner input = new Scanner(System.in); – sie konstruiert einen Scanner, der auf Tastatureingabe lauscht.

Die nextLine() Methode konsumiert die gesamte Zeile bis zum Zeilenumbruch.

Scanner Klasse importieren

Bevor Sie Scanner verwenden können, importieren Sie es:

import java.util.Scanner;

Für mehr zu Paket-Imports siehe Java Packages.

Scanner Objekte erstellen

Abhängig von Ihrer Eingabequelle instanziieren Sie einen Scanner wie folgt:

// Von einem Input Stream (z. B. System.in)
Scanner sc1 = new Scanner(InputStream input);
// Von einer Datei
Scanner sc2 = new Scanner(File file);
// Von einem String
Scanner sc3 = new Scanner(String str);

Wichtige Scanner Methoden für Eingabe

Die Scanner Klasse bietet eine Vielzahl von Methoden zum Lesen verschiedener Datentypen. Hier ist eine schnelle Referenz:

MethodeBeschreibung
nextInt()Liest ein int
nextFloat()Liest ein float
nextBoolean()Liest ein boolean
nextLine()Liest eine vollständige Textzeile
next()Liest ein einzelnes Wort (bis Whitespace)
nextByte()Liest ein byte
nextDouble()Liest ein double
nextShort()Liest ein short
nextLong()Liest ein long

Beispiel 2: nextInt() verwenden

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Geben Sie eine Ganzzahl ein: ");
        int data1 = input.nextInt();
        System.out.println("Mit nextInt(): " + data1);
        input.close();
    }
}

Ausgabe

Geben Sie eine Ganzzahl ein: 22
Mit nextInt(): 22

Beispiel 3: nextDouble() verwenden

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Geben Sie Double-Wert ein: ");
        double value = input.nextDouble();
        System.out.println("Mit nextDouble(): " + value);
        input.close();
    }
}

Ausgabe

Geben Sie Double-Wert ein: 33.33
Mit nextDouble(): 33.33

Beispiel 4: next() verwenden

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Geben Sie Ihren Namen ein: ");
        String value = input.next();
        System.out.println("Mit next(): " + value);
        input.close();
    }
}

Ausgabe

Geben Sie Ihren Namen ein: Jonny Walker
Mit next(): Jonny

Beachten Sie, dass next() beim ersten Whitespace stoppt, sodass nur der Vorname erfasst wird.

Beispiel 5: nextLine() verwenden

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Geben Sie Ihren Namen ein: ");
        String value = input.nextLine();
        System.out.println("Mit nextLine(): " + value);
        input.close();
    }
}

Ausgabe

Geben Sie Ihren Namen ein: Jonny Walker
Mit nextLine(): Jonny Walker

Im Gegensatz zu next() erfasst nextLine() die gesamte Zeile, einschließlich Leerzeichen, bis zum Newline-Character.

Empfohlene Lektüre: Java Scanner überspringt nextLine()

Scanner mit BigInteger und BigDecimal

Für Hochpräzisionszahlen unterstützt Scanner:

Beispiel: BigInteger und BigDecimal lesen

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Geben Sie eine große Ganzzahl ein: ");
        BigInteger value1 = input.nextBigInteger();
        System.out.println("Mit nextBigInteger(): " + value1);
        System.out.print("Geben Sie eine große Dezimalzahl ein: ");
        BigDecimal value2 = input.nextBigDecimal();
        System.out.println("Mit nextBigDecimal(): " + value2);
        input.close();
    }
}

Ausgabe

Geben Sie eine große Ganzzahl ein: 987654321
Mit nextBigInteger(): 987654321
Geben Sie eine große Dezimalzahl ein: 9.55555
Mit nextBigDecimal(): 9.55555

Wie Scanner intern funktioniert

Scanner liest eine gesamte Zeile, teilt sie dann mithilfe von Whitespace standardmäßig in Tokens auf. Jedes Token kann dann mit der entsprechenden Methode abgerufen werden. Zum Beispiel ergibt die Eingabe He is 22 die Tokens He, is und 22.

Tipp: Tokens werden durch Leerzeichen, Tabs oder Newlines getrennt, es sei denn, Sie passen den Delimiter an.

Java

  1. Javas final-Schlüsselwort verstehen: Variablen, Methoden und Klassen
  2. Java instanceof-Operator: Ein umfassender Leitfaden
  3. Java statische verschachtelte Klassen verstehen: Nutzung, Unterschiede und Beispiele
  4. Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
  5. Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung
  6. Java Reflection meistern: Klassen, Methoden und Felder zur Laufzeit inspizieren
  7. Java ObjectOutputStream meistern: Serialisierung, Methoden und praktische Beispiele
  8. Java Scanner meistern: Umfassender Leitfaden mit praktischen Beispielen
  9. Java Generics meistern – Wiederverwendbaren, typsicheren Code erstellen
  10. Java-Dateioperationen mit java.io meistern – Erstellen, Lesen, Schreiben & Löschen