Scanner löschen in Java

Rupam Yadav 15 Februar 2024
  1. Java-Scanner löschen mit nextLine()
  2. Erstellen eines neuen Scanner-Objekts zum Löschen des Scanners in Java
Scanner löschen in Java

Die Klasse Scanner in Java wird oft verwendet, um Eingaben oder Ausgaben entgegenzunehmen. Wir erstellen ein Objekt der Klasse Scanner, um ihre Funktionen zu nutzen.

Wir können die Methode close() von Scanner nicht verwenden, denn sobald ein Scanner durch diese Methode geschlossen wird, können wir keine Eingaben mehr entgegennehmen, da der Eingabestrom geschlossen wurde.

Es gibt andere Möglichkeiten, den Scanner in Java zu löschen, und im Folgenden werden diese Methoden anhand von Beispielen erläutert.

Java-Scanner löschen mit nextLine()

Um den Scanner zu löschen und ihn wieder zu verwenden, ohne ihn zu zerstören, können wir die Methode nextLine() der Klasse Scanner verwenden, die die aktuelle Zeile scannt und dann den Scanner auf die nächste Zeile setzt, um weitere Operationen auf der neuen Zeile durchzuführen.

Im folgenden Beispiel wird innerhalb der while-Schleife der Benutzer um eine Eingabe gebeten und mit hasNextInt(radix) geprüft, ob es sich um eine gültige Binärzahl handelt. Wenn es ein gültiger Binärwert ist, dann wird er in der Variablen binary gespeichert, und wenn es kein Binärwert ist, dann wird eine Meldung ausgegeben, um den Benutzer aufzufordern, einen gültigen Binärwert einzugeben.

Wenn wir in dieser Situation den Scanner nicht löschen, wird die Schleife niemals enden. Wenn der Wert nicht binär ist, dann sollte der Scanner zu einer neuen Zeile gehen, um eine neue Eingabe entgegenzunehmen. Aus diesem Grund wird nextLine() verwendet, um die aktuelle Zeile zu überspringen und zu einer neuen Zeile zu gehen.

import java.util.Scanner;

public class ClearScanner {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int binary = 0;
    int radix = 2;

    while (binary == 0) {
      System.out.print("Please input a valid binary: ");

      if (input.hasNextInt(radix)) {
        binary = input.nextInt(radix);
      } else {
        System.out.println("Not a Valid Binary");
      }
      input.nextLine();
    }

    System.out.print("Converted Binary: " + binary);
  }
}

Ausgabe:

Scanner löschen in Java

Erstellen eines neuen Scanner-Objekts zum Löschen des Scanners in Java

Eine andere Methode, den Scanner zu löschen, besteht darin, ein neues Scanner-Objekt zu erzeugen, wenn der Benutzer einen anderen Wert als einen binären Wert eingibt. Diese Methode funktioniert, weil beim Erstellen eines neuen Objekts das vorhandene Scanner-Objekt gelöscht wird und ein neuer Eingabestrom gestartet wird.

import java.util.Scanner;

public class ClearScanner {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int binary = 0;
    int radix = 2;

    while (binary == 0) {
      System.out.print("Please input a valid binary: ");

      if (input.hasNextInt(radix)) {
        binary = input.nextInt(radix);
      } else {
        System.out.println("Not a Valid Binary");
      }

      input = new Scanner(System.in);
    }

    System.out.print("Converted Binary: " + binary);
  }
}

Ausgabe:

Please input a valid binary: 23
Not a Valid Binary
Please input a valid binary: 11101
Converted Binary: 29
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Verwandter Artikel - Java Scanner