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:
| Methode | Beschreibung |
|---|---|
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:
- nextBigInteger() – Liest ein
BigInteger - nextBigDecimal() – Liest ein
BigDecimal
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
- Javas final-Schlüsselwort verstehen: Variablen, Methoden und Klassen
- Java instanceof-Operator: Ein umfassender Leitfaden
- Java statische verschachtelte Klassen verstehen: Nutzung, Unterschiede und Beispiele
- Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
- Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung
- Java Reflection meistern: Klassen, Methoden und Felder zur Laufzeit inspizieren
- Java ObjectOutputStream meistern: Serialisierung, Methoden und praktische Beispiele
- Java Scanner meistern: Umfassender Leitfaden mit praktischen Beispielen
- Java Generics meistern – Wiederverwendbaren, typsicheren Code erstellen
- Java-Dateioperationen mit java.io meistern – Erstellen, Lesen, Schreiben & Löschen