Categorías
Collections

Práctica sencilla con Scanner en Java

¿Cuál es el resultado del siguiente programa?

import java.util.Scanner;
public class Looking {
    public static void main(String[] args){
        String input = "1 2 a 3 45 6";
        Scanner sc = new Scanner(input);
        int x = 0;
        do{
            x = sc.nextInt();
            System.out.print(x + " ");
        }while(x != 0);
    }
}

El siguiente es el resultado:

run:
Exception in thread "main" java.util.InputMismatchException
        at java.util.Scanner.throwFor(Scanner.java:840)
        at java.util.Scanner.next(Scanner.java:1461)
        at java.util.Scanner.nextInt(Scanner.java:2091)
        at java.util.Scanner.nextInt(Scanner.java:2050)
        at Looking.main(Looking.java:19)
1 2 Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)

Los métodos nextXxx () generalmente se invocan después de una llamada a hasNextXxx (), que determina si el siguiente token es del tipo correcto. Aquí no existe tal método, por lo que se lanza una excepción. (Java.util.InputMismatchException)

El siguiente es el código corregido:

public class Looking {
    public static void main(String[] args){
        String input = "1 2 a 3 45 6";
        Scanner sc = new Scanner(input);
        int x = 0;
        while(sc.hasNextInt()){
            x = sc.nextInt();
            System.out.print(x + " ");
        }
    }
}
  Implementar comparable para un TreeSet

El resultado es:

run:
1 2 BUILD SUCCESSFUL (total time: 0 seconds)

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *