La clase de escáner en Java se encuentra en el paquete java.util. Java proporciona varias formas de leer la entrada desde el teclado, la clase java.util.Scanner es una de ellas.
conversión y conversión de tipos java
La clase Java Scanner divide la entrada en tokens usando un delimitador que es un espacio en blanco de forma predeterminada. Proporciona muchos métodos para leer y analizar varios valores primitivos.
La clase Java Scanner se usa ampliamente para analizar texto en busca de cadenas y tipos primitivos usando una expresión regular. Es la forma más sencilla de obtener entradas en Java. Con la ayuda de Scanner en Java, podemos obtener información del usuario en tipos primitivos como int, long, double, byte, float, short, etc.
La clase Java Scanner extiende la clase Object e implementa las interfaces Iterator y Closeable.
La clase Java Scanner proporciona métodos nextXXX() para devolver el tipo de valor, como nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean(), etc. Para obtener un solo carácter del escáner, puede llamar al método next().charAt(0) que devuelve un solo carácter.
Declaración de clase de escáner Java
public final class Scanner extends Object implements Iterator
Cómo obtener el escáner Java
Para obtener la instancia de Java Scanner que lee la entrada del usuario, necesitamos pasar el flujo de entrada (System.in) en el constructor de la clase Scanner. Por ejemplo:
Scanner in = new Scanner(System.in);
Para obtener la instancia de Java Scanner que analiza las cadenas, debemos pasar las cadenas en el constructor de la clase Scanner. Por ejemplo:
procesamiento en paralelo
Scanner in = new Scanner('Hello Javatpoint');
Constructores de clases de escáner Java
SN | Constructor | Descripción |
---|---|---|
1) | Escáner (fuente del archivo) | Construye un nuevo escáner que produce valores escaneados a partir del archivo especificado. |
2) | Escáner (fuente del archivo, nombre del conjunto de caracteres de cadena) | Construye un nuevo escáner que produce valores escaneados a partir del archivo especificado. |
3) | Escáner (fuente InputStream) | Construye un nuevo escáner que produce valores escaneados a partir del flujo de entrada especificado. |
4) | Escáner (fuente de InputStream, nombre de conjunto de caracteres de cadena) | Construye un nuevo escáner que produce valores escaneados a partir del flujo de entrada especificado. |
5) | Escáner (fuente legible) | Construye un nuevo escáner que produce valores escaneados desde la fuente especificada. |
6) | Escáner (fuente de cadena) | Construye un nuevo escáner que produce valores escaneados a partir de la cadena especificada. |
7) | Escáner (fuente ReadableByteChannel) | Construye un nuevo escáner que produce valores escaneados desde el canal especificado. |
8) | Escáner (fuente ReadableByteChannel, String charsetName) | Construye un nuevo escáner que produce valores escaneados desde el canal especificado. |
9) | Escáner (fuente de ruta) | Construye un nuevo escáner que produce valores escaneados a partir del archivo especificado. |
10) | Escáner (fuente de ruta, nombre de conjunto de caracteres de cadena) | Construye un nuevo escáner que produce valores escaneados a partir del archivo especificado. |
Métodos de clase de escáner Java
La siguiente es la lista de métodos de escáner:
SN | Modificador y tipo | Método | Descripción |
---|---|---|---|
1) | vacío | cerca() | Se utiliza para cerrar este escáner. |
2) | patrón | delimitador() | Se utiliza para obtener el patrón que la clase Scanner está utilizando actualmente para hacer coincidir los delimitadores. |
3) | Arroyo | encuentra todos() | Se utiliza para encontrar un flujo de resultados de coincidencias que coincidan con la cadena de patrón proporcionada. |
4) | Cadena | encontrar en línea() | Se utiliza para encontrar la siguiente aparición de un patrón construido a partir de la cadena especificada, ignorando los delimitadores. |
5) | cadena | encontrar dentro del horizonte() | Se utiliza para encontrar la siguiente aparición de un patrón construido a partir de la cadena especificada, ignorando los delimitadores. |
6) | booleano | tieneSiguiente() | Devuelve verdadero si este escáner tiene otro token en su entrada. |
7) | booleano | tieneNextBigDecimal() | Se utiliza para comprobar si el siguiente token en la entrada de este escáner se puede interpretar como BigDecimal usando el método nextBigDecimal() o no. |
8) | booleano | tieneNextBigInteger() | Se utiliza para comprobar si el siguiente token en la entrada de este escáner se puede interpretar como BigDecimal usando el método nextBigDecimal() o no. |
9) | booleano | tieneNextBoolean() | Se utiliza para comprobar si el siguiente token en la entrada de este escáner se puede interpretar como booleano utilizando el método nextBoolean() o no. |
10) | booleano | tieneNextByte() | Se utiliza para comprobar si el siguiente token en la entrada de este escáner se puede interpretar como un Byte utilizando el método nextBigDecimal() o no. |
11) | booleano | tieneNextDouble() | Se utiliza para comprobar si el siguiente token en la entrada de este escáner se puede interpretar como BigDecimal usando el método nextByte() o no. |
12) | booleano | tieneNextFloat() | Se utiliza para comprobar si el siguiente token en la entrada de este escáner se puede interpretar como un flotante utilizando el método nextFloat() o no. |
13) | booleano | tieneNextInt() | Se utiliza para comprobar si el siguiente token en la entrada de este escáner se puede interpretar como un int usando el método nextInt() o no. |
14) | booleano | tieneNextLine() | Se utiliza para comprobar si hay otra línea en la entrada de este escáner o no. |
15) | booleano | tieneNextLong() | Se utiliza para comprobar si el siguiente token en la entrada de este escáner se puede interpretar como Long usando el método nextLong() o no. |
16) | booleano | tieneNextShort() | Se utiliza para comprobar si el siguiente token en la entrada de este escáner se puede interpretar como un Short usando el método nextShort() o no. |
17) | IOExcepción | ioExcepción() | Se utiliza para obtener la última IOException lanzada por el legible de este escáner. |
18) | Local | local() | Se utiliza para obtener una configuración regional de la clase Scanner. |
19) | Resultado del partido | fósforo() | Se utiliza para obtener el resultado coincidente de la última operación de escaneo realizada por este escáner. |
20) | Cadena | próximo() | Se utiliza para obtener el siguiente token completo del escáner que está en uso. |
21) | GranDecimal | siguienteBigDecimal() | Escanea el siguiente token de la entrada como BigDecimal. |
22) | Gran entero | siguienteBigInteger() | Escanea el siguiente token de la entrada como BigInteger. |
23) | booleano | siguienteBooleano() | Escanea el siguiente token de la entrada en un valor booleano y devuelve ese valor. |
24) | byte | byte siguiente() | Escanea el siguiente token de la entrada como un byte. |
25) | doble | siguienteDoble() | Escanea el siguiente token de la entrada como doble. |
26) | flotar | siguienteFlotar() | Escanea el siguiente token de la entrada como un flotante. |
27) | En t | siguienteInt() | Escanea el siguiente token de la entrada como un Int. |
28) | Cadena | Proxima linea() | Se utiliza para obtener la cadena de entrada que se omitió en el objeto Escáner. |
29) | largo | siguienteLong() | Escanea el siguiente token de la entrada como un largo. |
30) | corto | siguienteCorto() | Escanea el siguiente token de la entrada como corto. |
31) | En t | base() | Se utiliza para obtener la base predeterminada del uso del escáner. |
32) | vacío | eliminar() | Se utiliza cuando esta implementación de Iterator no admite la operación de eliminación. |
33) | Escáner | reiniciar() | Se utiliza para restablecer el escáner que está en uso. |
34) | Escáner | saltar() | Omite la entrada que coincide con el patrón especificado, ignorando los delimitadores. |
35) | Arroyo | fichas() | Se utiliza para obtener un flujo de tokens separados por delimitadores del objeto Scanner que está en uso. |
36) | Cadena | Encadenar() | Se utiliza para obtener la representación de cadena del Scanner usando. |
37) | Escáner | utilizarDelimitador() | Se utiliza para establecer el patrón delimitador del escáner que está en uso según el patrón especificado. |
38) | Escáner | usarlocale() | Se utiliza para configurar el objeto de configuración regional de este escáner en la configuración regional especificada. |
39) | Escáner | utilizarRadix() | Se utiliza para establecer la base predeterminada del escáner que está en uso en la base especificada. |
Ejemplo 1
Veamos un ejemplo simple de Java Scanner donde obtenemos una única entrada del usuario. Aquí, solicitamos una cadena a través del método in.nextLine().
import java.util.*; public class ScannerExample { public static void main(String args[]){ Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.nextLine(); System.out.println('Name is: ' + name); in.close(); } }
Producción:
Enter your name: sonoo jaiswal Name is: sonoo jaiswal
Ejemplo 2
import java.util.*; public class ScannerClassExample1 { public static void main(String args[]){ String s = 'Hello, This is JavaTpoint.'; //Create scanner Object and pass string in it Scanner scan = new Scanner(s); //Check if the scanner has a token System.out.println('Boolean Result: ' + scan.hasNext()); //Print the string System.out.println('String: ' +scan.nextLine()); scan.close(); System.out.println('--------Enter Your Details-------- '); Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.next(); System.out.println('Name: ' + name); System.out.print('Enter your age: '); int i = in.nextInt(); System.out.println('Age: ' + i); System.out.print('Enter your salary: '); double d = in.nextDouble(); System.out.println('Salary: ' + d); in.close(); } }
Producción:
Boolean Result: true String: Hello, This is JavaTpoint. -------Enter Your Details--------- Enter your name: Abhishek Name: Abhishek Enter your age: 23 Age: 23 Enter your salary: 25000 Salary: 25000.0
Ejemplo 3
import java.util.*; public class ScannerClassExample2 { public static void main(String args[]){ String str = 'Hello/This is JavaTpoint/My name is Abhishek.'; //Create scanner with the specified String Object Scanner scanner = new Scanner(str); System.out.println('Boolean Result: '+scanner.hasNextBoolean()); //Change the delimiter of this scanner scanner.useDelimiter('/'); //Printing the tokenized Strings System.out.println('---Tokenizes String---'); while(scanner.hasNext()){ System.out.println(scanner.next()); } //Display the new delimiter System.out.println('Delimiter used: ' +scanner.delimiter()); scanner.close(); } }
Producción:
fusionar ordenar java
Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /