Clase de escáner Java
Clase de escáner Java
En este tutorial, aprenderemos sobre Java Scanner y sus métodos con la ayuda de ejemplos.
El Scanner
clase de los java.util
El paquete se usa para leer datos de entrada de diferentes fuentes, como flujos de entrada, usuarios, archivos, etc. Tomemos un ejemplo.
Ejemplo 1:leer una línea de texto usando un escáner
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// creates an object of Scanner
Scanner input = new Scanner(System.in);
System.out.print("Enter your name: ");
// takes input from the keyboard
String name = input.nextLine();
// prints the name
System.out.println("My name is " + name);
// closes the scanner
input.close();
}
}
Salida
Enter your name: Kelvin My name is Kelvin
En el ejemplo anterior, observe la línea
Scanner input = new Scanner(System.in);
Aquí, hemos creado un objeto de Scanner
llamado entrada .
El System.in
El parámetro se utiliza para tomar la entrada de la entrada estándar. Funciona igual que tomar entradas desde el teclado.
Entonces hemos usado el nextLine()
método del Scanner
class para leer una línea de texto del usuario.
Ahora que tienes una idea sobre Scanner
, exploremos más al respecto.
Importar clase de escáner
Como podemos ver en el ejemplo anterior, necesitamos importar el java.util.Scanner
paquete antes de que podamos usar el Scanner
clase.
import java.util.Scanner;
Para obtener más información sobre la importación de paquetes, visite Paquetes Java.
Crear un objeto de escáner en Java
Una vez que importamos el paquete, así es como podemos crear Scanner
objetos.
// read input from the input stream
Scanner sc1 = new Scanner(InputStream input);
// read input from files
Scanner sc2 = new Scanner(File file);
// read input from a string
Scanner sc3 = new Scanner(String str);
Aquí, hemos creado objetos del Scanner
clase que leerá la entrada de InputStream, File y String respectivamente.
Métodos de escáner de Java para tomar entrada
El Scanner
class proporciona varios métodos que nos permiten leer entradas de diferentes tipos.
Método | Descripción |
---|---|
nextInt() | lee un int valor del usuario |
nextFloat() | lee un float valor del usuario |
nextBoolean() | lee un boolean valor del usuario |
nextLine() | lee una línea de texto del usuario |
next() | lee una palabra del usuario |
nextByte() | lee un byte valor del usuario |
nextDouble() | lee un doubl e valor del usuario |
nextShort() | lee un short valor del usuario |
nextLong() | lee un long valor del usuario |
Ejemplo 2:Escáner Java nextInt()
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// creates a Scanner object
Scanner input = new Scanner(System.in);
System.out.println("Enter an integer: ");
// reads an int value
int data1 = input.nextInt();
System.out.println("Using nextInt(): " + data1);
input.close();
}
}
Salida
Enter an integer: 22 Using nextInt(): 22
En el ejemplo anterior, hemos utilizado el nextInt()
método para leer un valor entero.
Ejemplo 3:Escáner Java nextDouble()
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// creates an object of Scanner
Scanner input = new Scanner(System.in);
System.out.print("Enter Double value: ");
// reads the double value
double value = input.nextDouble();
System.out.println("Using nextDouble(): " + value);
input.close();
}
}
Salida
Enter Double value: 33.33 Using nextDouble(): 33.33
En el ejemplo anterior, hemos utilizado el nextDouble()
método para leer un valor de coma flotante.
Ejemplo 4:Analizador de Java next()
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// creates an object of Scanner
Scanner input = new Scanner(System.in);
System.out.print("Enter your name: ");
// reads the entire word
String value = input.next();
System.out.println("Using next(): " + value);
input.close();
}
}
Salida
Enter your name: Jonny Walker Using next(): Jonny
En el ejemplo anterior, hemos utilizado el next()
método para leer una cadena del usuario.
Aquí, hemos proporcionado el nombre completo. Sin embargo, el next()
El método solo lee el primer nombre.
Esto se debe a que el next()
El método lee la entrada hasta el espacio en blanco personaje. Una vez que el espacio en blanco se encuentra, devuelve la cadena (excluyendo el espacio en blanco).
Ejemplo 5:Escáner Java nextLine()
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// creates an object of Scanner
Scanner input = new Scanner(System.in);
System.out.print("Enter your name: ");
// reads the entire line
String value = input.nextLine();
System.out.println("Using nextLine(): " + value);
input.close();
}
}
Salida
Enter your name: Jonny Walker Using nextLine(): Jonny Walker
En el primer ejemplo, hemos utilizado el nextLine()
método para leer una cadena del usuario.
A diferencia de next()
, el nextLine()
El método lee toda la línea de entrada, incluidos los espacios. El método finaliza cuando encuentra un carácter de línea siguiente, \n
.
Lectura recomendada: Escáner de Java omitiendo nextLine().
Escáner Java con BigInteger y BigDecimal
El escáner de Java también se puede usar para leer números enteros y decimales grandes.
- siguienteGranEntero() - lee el valor entero grande del usuario
- siguienteGranDecimal() - lee el gran valor decimal del usuario
Ejemplo 4:Leer BigInteger y BigDecimal
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
class Main {
public static void main(String[] args) {
// creates an object of Scanner
Scanner input = new Scanner(System.in);
System.out.print("Enter a big integer: ");
// reads the big integer
BigInteger value1 = input.nextBigInteger();
System.out.println("Using nextBigInteger(): " + value1);
System.out.print("Enter a big decimal: ");
// reads the big decimal
BigDecimal value2 = input.nextBigDecimal();
System.out.println("Using nextBigDecimal(): " + value2);
input.close();
}
}
Salida
Enter a big integer: 987654321 Using nextBigInteger(): 987654321 Enter a big decimal: 9.55555 Using nextBigDecimal(): 9.55555
En el ejemplo anterior, hemos utilizado el java.math.BigInteger
y java.math.BigDecimal
paquete para leer BigInteger
y BigDecimal
respectivamente.
Funcionamiento de Java Scanner
El Scanner
class lee una línea completa y divide la línea en tokens. Los tokens son pequeños elementos que tienen algún significado para el compilador de Java. Por ejemplo,
Supongamos que hay una cadena de entrada:
He is 22
En este caso, el objeto del escáner leerá la línea completa y dividirá la cadena en tokens:"Él ", "es " y "22 ". Luego, el objeto itera sobre cada token y lee cada token usando sus diferentes métodos.
Nota :De forma predeterminada, se utilizan espacios en blanco para dividir tokens.
Java