Scanner claro en Java

Rupam Yadav 12 octubre 2023
  1. Limpiar el Scanner de Java usando nextLine()
  2. Crear un nuevo objeto Scanner para limpiar el Scanner en Java
Scanner claro en Java

La clase Scanner en Java se usa a menudo para tomar la entrada o la salida. Creamos un objeto de la clase Scanner para usar sus funciones.

No podemos usar el método close() de Scanner porque una vez que un Scanner se cierra con este método, no podemos tomar entrada ya que el flujo de entrada se ha cerrado.

Hay otras formas de cerrar el Scanner en Java, y abajo están los ejemplos que explican estos métodos.

Limpiar el Scanner de Java usando nextLine()

Para limpiar el Scanner y usarlo de nuevo sin destruirlo, podemos usar el método nextLine() de la clase Scanner, que escanea la línea actual y luego pone el Scanner en la línea siguiente para realizar cualquier otra operación en la nueva línea.

En el siguiente ejemplo, dentro del bucle while, pedimos al usuario una entrada y comprobamos si es un binario válido usando hasNextInt(radix). Si es un binario válido, entonces se almacenará en la variable binary, y si no es un valor binario, entonces se imprimirá un mensaje para pedir al usuario que introduzca un valor binario válido.

En esta situación, si no borramos el Scanner, el bucle nunca terminará. Si el valor no es binario, entonces el Scanner debería ir a una nueva línea para tomar una nueva entrada. Por eso nextLine() se usa para saltar la línea actual e ir a una nueva línea.

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

Resultado:

Scanner claro de Java

Crear un nuevo objeto Scanner para limpiar el Scanner en Java

Otro método para borrar el Scanner es crear un nuevo objeto Scanner cuando el usuario teclea un valor distinto de un valor binario. Este método funciona porque cuando se crea un nuevo objeto, el objeto Scanner existente se borra, y se inicia un nuevo flujo de entrada.

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

Resultado:

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

Artículo relacionado - Java Scanner