Scanner claro en Java
-
Limpiar el Scanner de Java usando
nextLine()
-
Crear un nuevo objeto
Scanner
para limpiar elScanner
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:
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 Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn