Effacer le Scanner en Java

  1. Effacer le Scanner en Java en utilisant la méthode nextLine()
  2. Créer un nouvel objet Scanner pour effacer le Scanner en Java

La classe Scanner en Java est souvent utilisée pour prendre des entrées ou des sorties. Nous créons un objet de la classe Scanner pour utiliser ses fonctions.

Nous ne pouvons pas utiliser la méthode close() de Scanner parce qu’une fois qu’un Scanner est fermé par cette méthode, nous ne pouvons pas prendre l’entrée comme le flux d’entrée a été fermé.

Il existe d’autres moyens d’effacer le Scanner en Java, et vous trouverez ci-dessous des exemples qui expliquent ces méthodes.

Effacer le Scanner en Java en utilisant la méthode nextLine()

Pour effacer le Scanner et l’utiliser à nouveau sans le détruire, nous pouvons utiliser la méthode nextLine() de la classe Scanner, qui scanne la ligne courante et place ensuite le Scanner à la ligne suivante pour effectuer toute autre opération sur la nouvelle ligne.

Dans l’exemple ci-dessous, à l’intérieur de la boucle while, nous demandons à l’utilisateur une entrée et vérifions si c’est un binaire valide en utilisant hasNextInt(radix). Si c’est un binaire valide, alors il sera stocké dans la variable binary, et si ce n’est pas une valeur binaire, alors un message sera imprimé pour demander à l’utilisateur d’entrer une valeur binaire valide.

Dans cette situation, si nous n’effaçons pas le Scanner, la boucle ne se terminera jamais. Si la valeur n’est pas binaire, alors le Scanner doit aller sur une nouvelle ligne pour prendre une nouvelle entrée. C’est pourquoi nextLine() est utilisé pour sauter la ligne courante et aller à une nouvelle ligne.

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

Production :

Scanner Java clear

Créer un nouvel objet Scanner pour effacer le Scanner en Java

Une autre méthode pour effacer le Scanner est de créer un nouvel objet Scanner lorsque l’utilisateur tape une valeur autre qu’une valeur binaire. Cette méthode fonctionne car lorsqu’un nouvel objet est créé, l’objet Scanner existant est effacé et un nouveau flux d’entrée est lancé.

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

    }
}

Production :

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

Article connexe - Java Scanner

  • Fermer un Scanner en Java
  • Obtenir un caractère à partir de l'entrée en Java