Cancella scanner in Java

Rupam Yadav 12 ottobre 2023
  1. Java Clear Scanner utilizzando nextLine()
  2. Crea un nuovo oggetto Scanner per cancellare lo Scanner in Java
Cancella scanner in Java

La classe Scanner in Java viene spesso utilizzata per ricevere input o output. Creiamo un oggetto della classe Scanner per utilizzare le sue funzioni.

Non possiamo usare il metodo close() di Scanner perché una volta che uno Scanner viene chiuso con questo metodo, non possiamo accettare l’input poiché il flusso di input è stato chiuso.

Ci sono altri modi per cancellare lo Scanner in Java e di seguito sono riportati gli esempi che spiegano questi metodi.

Java Clear Scanner utilizzando nextLine()

Per cancellare lo Scanner e usarlo di nuovo senza distruggerlo, possiamo usare il metodo nextLine() della classe Scanner, che scansiona la riga corrente e quindi imposta lo Scanner sulla riga successiva per eseguire eventuali altre operazioni sulla nuova linea.

Nell’esempio sotto, all’interno del cicli while, chiediamo all’utente un input e controlliamo se è un binario valido usando hasNextInt(radix). Se è un binario valido, verrà memorizzato nella variabile binary, e se non è un valore binario, verrà stampato un messaggio per chiedere all’utente di inserire un valore binario valido.

In questa situazione, se non cancelliamo lo Scanner, il bucle non finirà mai. Se il valore non è binario, lo Scanner dovrebbe andare su una nuova riga per ricevere un nuovo input. Questo è il motivo per cui nextLine() viene utilizzato per saltare la riga corrente e passare a una nuova riga.

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);
  }
}

Produzione:

Scanner Java chiaro

Crea un nuovo oggetto Scanner per cancellare lo Scanner in Java

Un altro metodo per cancellare lo Scanner è creare un nuovo oggetto Scanner quando l’utente digita un valore diverso da un valore binario. Questo metodo funziona perché quando viene creato un nuovo oggetto, l’oggetto Scanner esistente viene cancellato e viene avviato un nuovo flusso di input.

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);
  }
}

Produzione:

Please input a valid binary: 23
Not a Valid Binary
Please input a valid binary: 11101
Converted Binary: 29
Autore: Rupam Yadav
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

Articolo correlato - Java Scanner