So erhalten Sie in Java Eingaben von einem Benutzer (mit Bildern)

Inhaltsverzeichnis:

So erhalten Sie in Java Eingaben von einem Benutzer (mit Bildern)
So erhalten Sie in Java Eingaben von einem Benutzer (mit Bildern)

Video: So erhalten Sie in Java Eingaben von einem Benutzer (mit Bildern)

Video: So erhalten Sie in Java Eingaben von einem Benutzer (mit Bildern)
Video: Plague Inc #033 - Prion - Mega Brutal - Guide 2024, Kann
Anonim

Beim Programmieren in Java oder einer anderen Sprache müssen Sie höchstwahrscheinlich Eingabeinformationen von einem Benutzer verwenden. Java bietet viele verschiedene Methoden zum Eingeben von Benutzerinformationen, aber die gebräuchlichste und vielleicht am einfachsten zu implementierende Methode ist die Verwendung des Scanner-Objekts.

Schritte

Methode 1 von 2: Videos

1514756 1
1514756 1

Schritt 1. Importieren Sie die Scanner-Klasse

Sie können entweder den Import der

java.util. Scanner

Klasse oder das ganze

java.util

Paket. Um eine Klasse oder ein Paket zu importieren, fügen Sie ganz am Anfang Ihres Codes eine der folgenden Zeilen hinzu:

    java.util. Scanner importieren; // Dies importiert nur die Scanner-Klasse. java.util.* importieren; // Dies importiert das gesamte java.util-Paket.

1514756 2
1514756 2

Schritt 2. Initialisieren Sie ein neues Scanner-Objekt, indem Sie das

System.in

Eingabestream an den Konstruktor.

System.in

ist der Standard-Eingabestrom, der bereits geöffnet und bereit ist, Eingabedaten bereitzustellen. Normalerweise entspricht dieser Stream einer Tastatureingabe.

    Scanner userInputScanner = neuer Scanner(System.in);

1514756 3
1514756 3

Schritt 3. Lesen Sie verschiedene Arten von Eingabedaten ein, die der Benutzer eingibt

Die Scanner-Klasse unterstützt das Abrufen von Primitiven wie int, byte, short, long zusätzlich zum Abrufen von Strings.

  • Hier sind einige Methoden, die über die Scanner-Klasse verfügbar sind:

    • Lesen Sie ein Byte -

      nextByte()

    • Kurz lesen -

      nextShort()

    • Int lesen -

      nextInt()

    • Mitlesen -

      nextLong()

    • Lesen Sie einen Schwimmer -

      nextFloat()

    • Lesen Sie ein Doppel -

      nextDouble()

    • Lesen Sie einen booleschen Wert -

      nextBoolean()

    • Lesen Sie eine komplette Zeile -

      nächste Zeile()

    • Lesen Sie ein Wort -

      nächste()

  • Hier ist ein Beispiel für ein Programm, das verschiedene Methoden der Scanner-Klasse verwendet, um verschiedene Eingabetypen zu erhalten:

      java.util. Scanner importieren; public class ScannerExample { public static void main(String args) { // Initiiere einen neuen Scanner Scanner userInputScanner = new Scanner(System.in); // Testen von nextLine(); System.out.println("\nWie ist Ihr Name? "); Stringname = userInputScanner.nextLine(); // Testen von nextInt(); System.out.print("Wie viele Katzen hast du? "); int numberOfCats = userInputScanner.nextInt(); // Testen von nextDouble(); System.out.print("Wie viel Geld ist in Ihrem Portemonnaie? $"); double moneyInWallet = userInputScanner.nextDouble(); System.out.println("\nHallo " + name + "! Du hast " + numberOfCats + (numberOfCats > 1 ? "cats": "cat") + " und $" + moneyInWallet + " in deiner Brieftasche.\n"); } }

Methode 2 von 2: Ausnahmen behandeln

1514756 4
1514756 4

Schritt 1. Behandeln Sie Eingabeausnahmen

Ein

InputMismatchException

wird ausgelöst, wenn der Benutzer Daten eingibt, die nicht mit dem angeforderten Typ übereinstimmen. Wenn der Benutzer beispielsweise einen String eingibt, wenn nach einem int gefragt wird, wirft das Programm ein

InputMismatchException

und Ausfahrt. Es gibt mehrere Möglichkeiten, diese Ausnahme zu behandeln und dieses Problem zu beheben, damit Ihr Programm narrensicher ist.

1514756 5
1514756 5

Schritt 2. Verwenden Sie einen Try-Catch-Block, um die

InputMismatchException

.

    import java.util. InputMismatchException; java.util. Scanner importieren; public class ScannerExample { public static void main(String args) { // Initiiere einen neuen Scanner Scanner userInputScanner = new Scanner(System.in); // Testen von nextLine(); System.out.print("\nWie ist Ihr Name? "); Stringname = userInputScanner.nextLine(); // Testen von nextInt(); boolescher Wert validInput = false; int numberOfCats = 0; while (!validInput) { System.out.print("Wie viele Katzen hast du? "); try { numberOfCats = userInputScanner.nextInt(); gültige Eingabe = wahr; } catch (InputMismatchException e) { validInput = false; userInputScanner.nextLine(); } } // teste nextDouble(); gültige Eingabe = falsch; doppeltes GeldInWallet = 0.0; while (!validInput) { System.out.print("Wie viel Geld ist in Ihrem Portemonnaie? $"); try { moneyInWallet = userInputScanner.nextDouble(); userInputScanner.nextLine(); gültige Eingabe = wahr; } catch (InputMismatchException e) { validInput = false; userInputScanner.nextLine(); } } System.out.println("\nHallo " + name + "! Du hast " + numberOfCats + (numberOfCats > 1 ? " cats": "cat") + " und $" + moneyInWallet + " in deiner Brieftasche.\ n"); } }

  • Beachten Sie, dass wir importieren müssen

    java.util. InputMismatchException

    um die zu verwenden

    InputMismatchException

  • Klasse.
  • Wir verwenden eine while-Schleife, um dem Benutzer dieselbe Frage zu stellen, bis der Benutzer die richtige Eingabe eingibt.
  • Hinzufügen

    userInputScanner.nextLine();

  • im Catch-Teil des Try-Catch stellt sicher, dass der Scanner den "Enter"-Tastendruck des Benutzers bestätigt und dient als Möglichkeit, den Eingabepuffer zu leeren.
1514756 6
1514756 6

Schritt 3. Alternativ können Sie die Benutzereingabe narrensicher machen, indem Sie nur die nächsten Zeilen vom Scanner aufnehmen

Auf diese Weise können wir sicherstellen, dass alles, was der Scanner zurückgibt, ein String-Objekt ist und keine Ausnahmen erzeugt. Um die Strings dann in Ganzzahlen oder Doubles zu konvertieren, können wir die Wrapper-Klassen Integer und Double verwenden.

    java.util. Scanner importieren; public class ScannerExample { public static void main(String args) { // Initiiere einen neuen Scanner Scanner userInputScanner = new Scanner(System.in); // Testen von nextLine(); System.out.print("\nWie ist Ihr Name? "); Stringname = userInputScanner.nextLine(); // Testen von nextInt(); boolescher Wert validInput = false; int numberOfCats = 0; while (!validInput) { System.out.print("Wie viele Katzen hast du? "); String-Eingabe = userInputScanner.nextLine(); try { numberOfCats = Integer.parseInt (Eingabe); gültige Eingabe = wahr; } catch (NumberFormatException e) { validInput = false; } } // teste nextDouble(); gültige Eingabe = falsch; doppeltes GeldInWallet = 0.0; while (!validInput) { System.out.print("Wie viel Geld ist in Ihrem Portemonnaie? $"); String-Eingabe = userInputScanner.nextLine(); try { moneyInWallet = Double.parseDouble (Eingabe); gültige Eingabe = wahr; } catch (NumberFormatException e) { validInput = false; } } System.out.println("\nHallo " + name + "! Du hast " + numberOfCats + (numberOfCats > 1 ? " cats": "cat") + " und $" + moneyInWallet + " in deiner Brieftasche.\ n"); } }

  • Beachten Sie, dass wir hier die

    NumberFormatException

  • class, weil es Teil des java.lang-Pakets ist, was bedeutet, dass es integriert ist.
  • Wir mussten den Puffer auch nicht löschen mit

    userInputScanner.nextLine();

  • im Catch-Teil des Try-Catch.

Tipps

  • Weitere Informationen zur Verwendung der Scanner-Klasse finden Sie in der Scanner-API.
  • Verwenden Sie immer.next() anstelle von.nextLine(), um das nächste Wort zu lesen, da.nextLine() fehlerhaft sein kann.

Empfohlen: