Wie man eine lange Ganzzahl-Eingabe mit Scanner in Java liest

JavaBeginner
Jetzt üben

Einführung

In diesem Tutorial werden wir den Prozess des Lesens von Eingaben für lange Ganzzahlen (long integers) mit der Java-Scanner-Klasse untersuchen. Wir werden die wesentlichen Schritte und Techniken behandeln, um eine genaue und zuverlässige Dateneingabe sicherzustellen, sowie die Vorgehensweise bei häufigen Ausnahmen bei der Eingabe von Zahlen, die während des Prozesses auftreten können.

Einführung in den Java-Scanner

In Java ist die Scanner-Klasse ein leistungsstarkes Werkzeug zum Lesen von Eingaben aus verschiedenen Quellen, einschließlich der Konsole, Dateien und Netzwerkverbindungen. Sie bietet eine einfache und effiziente Möglichkeit, verschiedene Arten von Eingabedaten zu analysieren und zu interpretieren, darunter Ganzzahlen, Fließkommazahlen, Zeichenketten und vieles mehr.

Die Scanner-Klasse ist Teil des java.util-Pakets und kann mit der folgenden Anweisung importiert werden:

import java.util.Scanner;

Um ein Scanner-Objekt zu erstellen und es zum Lesen von Eingaben zu verwenden, können Sie die folgenden Schritte ausführen:

  1. Erstellen Sie ein neues Scanner-Objekt und übergeben Sie die Eingabequelle als Parameter:

    Scanner scanner = new Scanner(System.in);

    In diesem Beispiel erstellen wir ein Scanner-Objekt, das Eingaben von der Konsole (Standard-Eingabe) liest.

  2. Verwenden Sie die entsprechenden Methoden der Scanner-Klasse, um verschiedene Arten von Eingaben zu lesen. Beispielsweise können Sie die nextInt()-Methode verwenden, um eine Ganzzahl zu lesen:

    int number = scanner.nextInt();

    Die Scanner-Klasse bietet verschiedene andere Methoden, wie nextDouble(), nextLine(), nextBoolean() und mehr, um verschiedene Datentypen zu lesen.

  3. Denken Sie daran, das Scanner-Objekt zu schließen, wenn Sie es nicht mehr benötigen, um Systemressourcen freizugeben:

    scanner.close();

Durch die Verwendung der Scanner-Klasse können Sie in Ihren Java-Anwendungen problemlos Benutzer-Eingaben lesen und verarbeiten, wodurch diese interaktiver und benutzerfreundlicher werden.

Lesen von langen Ganzzahlen (long integers) mit Scanner

Während die nextInt()-Methode der Scanner-Klasse zur Lesen von Ganzzahlen standardmäßiger Größe geeignet ist, kann sie möglicherweise nicht sehr große Ganzzahlwerte verarbeiten, wie beispielsweise solche, die den Wertebereich des int-Datentyps in Java überschreiten. In solchen Fällen können Sie die nextLong()-Methode verwenden, um lange Ganzzahlwerte zu lesen.

Der long-Datentyp in Java kann Ganzzahlwerte im Bereich von -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807 speichern, was viel größer ist als der Wertebereich des int-Datentyps (-2.147.483.648 bis 2.147.483.647).

Hier ist ein Beispiel, wie Sie die nextLong()-Methode verwenden können, um eine Eingabe einer langen Ganzzahl zu lesen:

import java.util.Scanner;

public class LongIntegerInput {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter a long integer: ");
        long longNumber = scanner.nextLong();

        System.out.println("You entered: " + longNumber);

        scanner.close();
    }
}

In diesem Beispiel erstellen wir ein Scanner-Objekt und verwenden die nextLong()-Methode, um die Eingabe der langen Ganzzahl vom Benutzer zu lesen. Die Eingabe wird dann in der longNumber-Variable gespeichert und auf der Konsole ausgegeben.

Denken Sie daran, potenzielle Ausnahmen zu behandeln, die beim Lesen der Eingabe auftreten können, wie beispielsweise die InputMismatchException, wenn der Benutzer einen nicht numerischen Wert eingibt. Wir werden das im nächsten Abschnitt behandeln.

Behandlung von Ausnahmen bei der Eingabe von Zahlen

Beim Lesen von numerischen Eingaben mit der Scanner-Klasse ist es wichtig, potenzielle Ausnahmen zu behandeln, die auftreten können. Eine häufige Ausnahme ist die InputMismatchException, die ausgelöst wird, wenn der Benutzer einen nicht numerischen Wert eingibt.

Um diese Ausnahmen zu behandeln, können Sie einen try-catch-Block verwenden, um die Ausnahme abzufangen und eine entsprechende Fehlerbehandlung durchzuführen. Hier ist ein Beispiel:

import java.util.InputMismatchException;
import java.util.Scanner;

public class NumericInputException {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        try {
            System.out.print("Enter a long integer: ");
            long longNumber = scanner.nextLong();
            System.out.println("You entered: " + longNumber);
        } catch (InputMismatchException e) {
            System.out.println("Error: Invalid input. Please enter a valid long integer.");
        } finally {
            scanner.close();
        }
    }
}

In diesem Beispiel umschließen wir den Aufruf von scanner.nextLong() in einem try-Block. Wenn der Benutzer einen nicht numerischen Wert eingibt, wird die InputMismatchException abgefangen und eine Fehlermeldung ausgegeben. Schließlich schließen wir das Scanner-Objekt im finally-Block, um sicherzustellen, dass die Systemressourcen ordnungsgemäß freigegeben werden.

Durch die Behandlung von Ausnahmen können Sie Ihre Java-Anwendungen robuster machen und ein besseres Benutzererlebnis bieten, indem Sie unerwartete Eingaben gracefully (elegant) behandeln.

Zusätzlich können Sie eine Schleife verwenden, um den Benutzer wiederholt zur Eingabe aufzufordern, bis eine gültige lange Ganzzahl eingegeben wurde. Hier ist ein Beispiel:

import java.util.InputMismatchException;
import java.util.Scanner;

public class NumericInputException {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        long longNumber;
        boolean validInput = false;

        while (!validInput) {
            try {
                System.out.print("Enter a long integer: ");
                longNumber = scanner.nextLong();
                validInput = true;
                System.out.println("You entered: " + longNumber);
            } catch (InputMismatchException e) {
                System.out.println("Error: Invalid input. Please enter a valid long integer.");
                scanner.nextLine(); // Clear the input buffer
            }
        }

        scanner.close();
    }
}

In diesem Beispiel verwenden wir eine while-Schleife, um den Benutzer wiederholt zur Eingabe aufzufordern, bis eine gültige lange Ganzzahl eingegeben wurde. Der Aufruf von scanner.nextLine() wird verwendet, um den Eingabepuffer zu leeren, nachdem eine InputMismatchException abgefangen wurde, damit der Benutzer einen neuen Wert eingeben kann.

Durch die Behandlung von Ausnahmen und die Bereitstellung eines robusten Eingabevalidierungsprozesses können Sie sicherstellen, dass Ihre Java-Anwendungen eine Vielzahl von Benutzereingaben gracefully behandeln können und ein insgesamt besseres Benutzererlebnis bieten.

Zusammenfassung

Am Ende dieses Tutorials werden Sie einen guten Überblick darüber haben, wie Sie mit der Java-Scanner-Klasse Eingaben von langen Ganzzahlen (long integers) lesen können, und Sie werden in der Lage sein, alle möglichen Ausnahmen bei der Eingabe von Zahlen zu behandeln. Dieses Wissen wird Ihnen bei Ihrer Java-Programmierreise von unschätzbarem Wert sein und Ihnen ermöglichen, robuste und benutzerfreundliche Anwendungen zu entwickeln.