Esta es la contestación más exacta que encomtrarás compartir, pero mírala pausadamente y valora si se adapta a tu proyecto.
Solución:
Muy bien, vamos a elaborar con una explicación simplificada sobre el Scanner
clase.
Es una clase estándar de Oracle que puede usar llamando al import java.util.Scanner
.
Así que hagamos un ejemplo básico de la clase:
class Scanner
InputStream source;
Scanner(InputStream src)
this.source = src;
int nextInt()
int nextInteger;
//Scans the next token of the input as an int from the source.
return nextInteger;
Ahora cuando llamas Scanner input = new Scanner(System.in);
haces un nuevo objeto del Scanner
clase (así que creas un nuevo “Escáner”) y lo almacenas en la variable input
. Al mismo tiempo, está llamando al (así llamado) constructor de la clase, con el parámetro System.in
. Eso significa que va a leer desde el flujo de entrada estándar del programa.
Ahora cuando estás llamando input.nextInt();
ejecuta el método desde el objeto que acaba de crear (también documentado). Pero como vemos, este método devuelve un número entero, por lo que si queremos usar ese número entero, tenemos que asignar la llamada a una variable como lo haces tú:
int i = input.nextInt();
Scanner input = new Scanner(System.in);
crea un nuevoScanner
instancia que apunta a la flujo de entrada pasado como argumento. En tu caso el vapor es Flujo de entrada estándar.
Entonces, una vez que su instancia de escáner lo señale, puede escanear la corriente y obtener integers
, strings
y hacer otras cosas.
Comentarios y puntuaciones
Acuérdate de que tienes concesión de explicar tu experiencia si te ayudó.