- java.lang.Object
-
- java.util.Scanner
-
- Todas las interfaces implementadas
-
Closeable,AutoCloseable,Iterator<String>
public final class Scanner extends Object implements Iterator<String>, Closeable
Un escáner de texto simple que puede utilizar expresiones regulares para analizar tipos primitivos y cadenas.ScannerUtiliza un patrón de delimitadores para dividir su entrada en tokens; dicho patrón coincide con espacios en blanco de forma predeterminada. Los tokens resultantes pueden luego convertirse en valores de varios tipos diferentes usandonextmétodo.Por ejemplo, este código permite al usuario desde
System.inleer números:Scanner sc = new Scanner(System.in); int i = sc.nextInt();Como otro ejemplo, este código permite desde archivo
myNumbersasignación de entradaslongtipo:Scanner sc = new Scanner(new File("myNumbers")); while (sc.hasNextLong()) { long aLong = sc.nextLong(); }El escáner también puede usar delimitadores distintos de los espacios en blanco. Este ejemplo lee varios elementos de una cadena:
String input = "1 fish 2 fish red fish blue fish"; Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*"); System.out.println(s.nextInt()); System.out.println(s.nextInt()); System.out.println(s.next()); System.out.println(s.next()); s.close();Imprime la siguiente salida:
1 2 red blueMediante este código se puede generar la misma salida; dicho código utiliza una expresión regular para analizar los cuatro tokens de una sola vez:
String input = "1 fish 2 fish red fish blue fish"; Scanner s = new Scanner(input); s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)"); MatchResult result = s.match(); for (int i=1; i<=result.groupCount(); i++) System.out.println(result.group(i)); s.close();4502201395911Identifica lo que usa el escánerdefault whitespace delimiter 。
reset()El método restablece el valor del delimitador del escáner al delimitador de espacio en blanco predeterminado, sin importar si se modificó anteriormente.Las operaciones de escaneo pueden bloquearse esperando entrada.
next()yhasNext()El método y su método acompañante (por ejemplo,nextInt()yhasNextInt()) primero saltan cualquier entrada que coincida con el patrón delimitador y luego intentan devolver el siguiente token.hasNext()ynext()Ambos métodos pueden bloquearse esperando más entrada.hasNext()Si el bloque del método está con su asociadonext()si el método va a bloquearnext()。tokens()El método también puede bloquearse esperando entrada.de
findInLine(),findWithinHorizon(),skip(), yfindAll()Operación independiente del patrón delimitador del método. Estos métodos intentarán coincidir con el patrón especificado sin tener en cuenta los delimitadores en la entrada, por lo que se pueden usar en casos especiales en los que los delimitadores no son relevantes. Estos métodos pueden bloquearse esperando más entrada.Cuando el escáner lanza
InputMismatchExceptionCuando, el escáner no pasará el token que causó la excepción, por lo que se puede recuperar u omitir mediante otros métodos.Según el tipo de patrón delimitador, se pueden devolver tokens vacíos. Por ejemplo, el patrón
"\\s+"no devolverá tokens vacíos, porque coincide con múltiples instancias del delimitador."\\s"El patrón"\\s"puede devolver tokens vacíos, porque solo pasa un espacio a la vez.El escáner puede desde cualquier implementación
ReadableEl objeto de la interfaz lee texto. Si sobre el Readable subyacenteread()la invocación del método lanzaIOException,entonces el escáner asumirá que se ha llegado al final de la entrada. Se puedeioException()recuperar mediante el método la última excepción lanzada por el Readable subyacente.IOException。Cuando
ScannerAl cerrar, si la fuente implementaCloseablela interfaz, cerrará su fuente de entrada.ScannerNo es seguro para uso multihilo sin sincronización externa.A menos que se indique lo contrario,
nullpasar el parámetro anullcualquier métodoScannerhará que se lanceNullPointerException。a menos que se utilice el método
useRadix(int)que establece una base diferente; de lo contrario, el escáner interpretará los números como decimales por defecto. Independientemente de si el escáner se ha modificado anteriormente,reset()el método restablecerá el valor de la base del escáner a10。Localized numbers
Las instancias de esta clase pueden escanear números en el formato estándar y en el formato de la configuración regional del escáner. el escánerinitial localeSí
Locale.getDefault(Locale.Category.FORMAT)el valor devuelto por el método; puede ser cambiadouseLocale()por el método.reset()El método restablecerá el valor de la configuración regional del escáner a la configuración regional inicial, haya sido modificada previamente o no.El formato localizado se define según los siguientes parámetros, que para una configuración regional particular se toman de dicha configuración regional
DecimalFormatobjetodfy suDecimalFormatSymbolsobjetodfs。- LocalGroupSeparator
-
The character used to separate thousands groups,
i.e.,
dfs.getGroupingSeparator() - LocalDecimalSeparator
-
The character used for the decimal point,
i.e.,
dfs.getDecimalSeparator() - LocalPositivePrefix
-
The string that appears before a positive number (may be empty),
i.e.,
df.getPositivePrefix() - LocalPositiveSuffix
-
The string that appears after a positive number (may be empty),
i.e.,
df.getPositiveSuffix() - LocalNegativePrefix
-
The string that appears before a negative number (may be empty),
i.e.,
df.getNegativePrefix() - LocalNegativeSuffix
-
The string that appears after a negative number (may be empty),
i.e.,
df.getNegativeSuffix() - LocalNaN
-
The string that represents not-a-number for floating-point values,
i.e.,
dfs.getNaN() - LocalInfinity
-
The string that represents infinity for floating-point values,
i.e.,
dfs.getInfinity()
Number syntax
Una cadena que puede ser analizada como un número por una instancia de esta clase se puede especificar mediante la siguiente sintaxis de expresión regular, donde Rmax es el dígito más alto de la base utilizada (por ejemplo, Rmax es 9 en base 10).
- NonAsciiDigit :
-
Un carácter no ASCII c,
Character.isDigit(c)devuelve true - Non0Digit :
-
[1-Rmax] |NonASCIIDigit - dígito :
-
[0-Rmax] |NonASCIIDigit - GroupedNumeral :
-
(Non0Digit Digit?Digit? -
(LocalGroupSeparator dígito Posición dígito)+ ) - dígito :
-
( (dígito+ ) |GroupedNumeral) - Integer:
-
( [-+]? (dígito) ) -
|LocalPositivePrefix dígito LocalPositiveSuffix -
|LocalNegativePrefix dígito LocalNegativeSuffix - Número decimal :
- dígito
-
|dígito LocalDecimalSeparator dígito* -
|LocalDecimalSeparator dígito+ - Exponente :
-
( [eE] [+-]?dígito+ ) - Decimal:
-
( [-+]?DecimalNumeral Exponente? ) -
|LocalPositivePrefix DecimalNumeral LocalPositiveSuffix Exponent? -
|LocalNegativePrefix DecimalNumeral LocalNegativeSuffix Exponent? - HexFloat :
-
[-+]? 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+ ([pP][-+]?[0-9]+)? - No numérico :
-
NaN |LocalNan| Infinity |LocalInfinity - SignedNonNumber :
-
( [-+]?NonNumber) -
|LocalPositivePrefix NonNumber LocalPositiveSuffix -
|LocalNegativePrefix NonNumber LocalNegativeSuffix - Float :
-
Decimal
|HexFloat|SignedNonNumber
En la expresión regular anterior, los espacios no son importantes.
- Desde la versión:
- 1.5
-
-
Resumen de constructores
Método constructor Constructor Descripción Scanner(File source)Construye un nuevoScanner, que genera valores escaneados del archivo especificado.Scanner(File source, String charsetName)Construye un nuevoScanner, que genera valores escaneados del archivo especificado.Scanner(File source, Charset charset)Construye un nuevoScanner, que genera valores escaneados del archivo especificado.Scanner(InputStream source)Construye un nuevoScanner, que genera valores escaneados del flujo de entrada especificado.Scanner(InputStream source, String charsetName)Construye un nuevoScanner, que genera valores escaneados del flujo de entrada especificado.Scanner(InputStream source, Charset charset)Construye un nuevoScanner, que genera valores escaneados del flujo de entrada especificado.Scanner(Readable source)Construye un nuevoScanner, que genera valores escaneados de la fuente especificada.Scanner(String source)Construye un nuevoScanner, que genera valores escaneados de la cadena especificada.Scanner(ReadableByteChannel source)Construye un nuevoScanner, que puede generar valores escaneados del canal especificado.Scanner(ReadableByteChannel source, String charsetName)Construye un nuevoScanner, que puede generar valores escaneados del canal especificado.Scanner(ReadableByteChannel source, Charset charset)Construye un nuevoScanner, que puede generar valores escaneados del canal especificado.Scanner(Path source)Construye un nuevoScanner, que genera valores escaneados del archivo especificado.Scanner(Path source, String charsetName)Construye un nuevoScanner, que genera valores escaneados del archivo especificado.Scanner(Path source, Charset charset)Construye un nuevoScanner, que genera valores escaneados del archivo especificado.
-
Resumen de métodos
Todos los métodos Método de instancia Método específico Variables y tipos Método Descripción voidclose()Cierra este escáner.Patterndelimiter()DevuelvePatternestoScannerActualmente se utiliza para hacer coincidir los delimitadores.Stream<MatchResult>findAll(String patString)Devuelve un flujo de resultados de coincidencia que coinciden con la cadena de patrón proporcionada.Stream<MatchResult>findAll(Pattern pattern)Devuelve el flujo de resultados de coincidencia de este escáner.StringfindInLine(String pattern)Intenta encontrar el siguiente patrón construido a partir de la cadena especificada, ignorando los delimitadores.StringfindInLine(Pattern pattern)Intenta encontrar la siguiente coincidencia del patrón especificado, ignorando los delimitadores.StringfindWithinHorizon(String pattern, int horizon)Intenta encontrar el siguiente patrón construido a partir de la cadena especificada, ignorando los delimitadores.StringfindWithinHorizon(Pattern pattern, int horizon)Intenta encontrar la siguiente coincidencia del patrón especificado.booleanhasNext()Devuelve true si hay otro token en la entrada de este escáner.booleanhasNext(String pattern)Devuelve true si el siguiente token coincide con el patrón construido a partir de la cadena especificada.booleanhasNext(Pattern pattern)Devuelve true si el siguiente token completo coincide con el patrón especificado.booleanhasNextBigDecimal()Si el siguiente token en la entrada de este escáner puede interpretarsenextBigDecimal()método interpretado comoBigDecimalentonces devuelve true.booleanhasNextBigInteger()Si el siguiente token en la entrada de este escáner puede interpretarsenextBigInteger()método en la base predeterminada interpretado comoBigInteger, entonces devuelve true.booleanhasNextBigInteger(int radix)Si el siguiente token en la entrada de este escáner puede interpretarsenextBigInteger()método en la base especificada interpretado comoBigInteger, entonces devuelve true.booleanhasNextBoolean()Devuelve true si, utilizando un patrón que no distingue mayúsculas de minúsculas creado a partir de la cadena "true | false", el siguiente token de la entrada de este escáner puede interpretarse como un valor booleano.booleanhasNextByte()Si se utilizanextByte()Devuelve true si el método interpreta el siguiente token de la entrada de este escáner como un valor byte en la base predeterminada.booleanhasNextByte(int radix)Si se utilizanextByte()Devuelve true si el método interpreta el siguiente token de la entrada de este escáner como un valor byte en la base especificada.booleanhasNextDouble()Si se utilizanextDouble()Devuelve true si el método interpreta el siguiente token de la entrada de este escáner como un valor double.booleanhasNextFloat()Si se utilizanextFloat()Devuelve true si el método interpreta el siguiente token de la entrada de este escáner como un valor de punto flotante.booleanhasNextInt()Si se utilizanextInt()Devuelve true si el método interpreta el siguiente token de la entrada de este escáner como un valor int en la base predeterminada.booleanhasNextInt(int radix)Si el siguiente token en la entrada de este escáner puede interpretarsenextInt()Devuelve true si el método interpreta el siguiente token como un valor int en la base especificada.booleanhasNextLine()Devuelve true si hay otra línea en la entrada de este escáner.booleanhasNextLong()Si se utilizanextLong()Devuelve true si el método interpreta el siguiente token de la entrada de este escáner como un valor long en la base predeterminada.booleanhasNextLong(int radix)Si se utilizanextLong()Devuelve true si el método puede interpretar el siguiente token de la entrada de este escáner como un valor long en la base especificada.booleanhasNextShort()Si se utilizanextShort()Devuelve true si el método puede interpretar el siguiente token de la entrada de este escáner como un valor short en la base predeterminada.booleanhasNextShort(int radix)Si el siguiente token en la entrada de este escáner puede interpretarsenextShort()Devuelve true si el método interpreta el siguiente token como un valor short en la base especificada.IOExceptionioException()DevuelveIOExceptionFinalmente lanzado a través de este.Scannerlo básico deReadable。Localelocale()Devuelve la configuración regional de este escáner.MatchResultmatch()Devuelve el resultado de coincidencia de la última operación de escaneo realizada por este escáner.Stringnext()Busca y devuelve el siguiente token completo de este escáner.Stringnext(String pattern)Devuelve el siguiente token si coincide con el patrón construido a partir de la cadena especificada.Stringnext(Pattern pattern)Devuelve el siguiente token si coincide con el patrón especificado.BigDecimalnextBigDecimal()Escanea el siguiente token de la entrada comoBigDecimal。BigIntegernextBigInteger()Escanea el siguiente token de la entrada comoBigInteger。BigIntegernextBigInteger(int radix)Escanea el siguiente token de la entrada comoBigInteger。booleannextBoolean()Escanea el siguiente token de la entrada como un valor booleano y devuelve ese valor.bytenextByte()Escanea el siguiente token de la entrada comobyte。bytenextByte(int radix)Escanea el siguiente token de la entrada comobyte。doublenextDouble()Escanea el siguiente token de la entrada comodouble。floatnextFloat()Escanea el siguiente token de la entrada comofloat。intnextInt()Escanea el siguiente token de la entrada comoint。intnextInt(int radix)Escanea el siguiente token de la entrada comoint。StringnextLine()Avanza este escáner más allá de la línea actual y devuelve la entrada omitida.longnextLong()Escanea el siguiente token de la entrada comolong。longnextLong(int radix)Escanea el siguiente token de la entrada comolong。shortnextShort()Escanea el siguiente token de la entrada comoshort。shortnextShort(int radix)Escanea el siguiente token de la entrada comoshort。intradix()Devuelve la base predeterminada de este escáner.voidremove()IteratorEsta implementación no admite la operación de eliminación.Scannerreset()Restablece este escáner.Scannerskip(String pattern)Omite la entrada que coincide con el patrón construido a partir de la cadena especificada.Scannerskip(Pattern pattern)Omite la entrada que coincide con el patrón especificado, ignorando los delimitadores.Stream<String>tokens()Devuelve un flujo de tokens separados por delimitadores de este escáner.StringtoString()Devuelve esteScannerla representación de cadena deScanner。ScanneruseDelimiter(String pattern)Establece el patrón delimitador de este escáner al construido a partir de la especificada.Stringel patrón construido.ScanneruseDelimiter(Pattern pattern)Establece el patrón delimitador de este escáner al patrón especificado.ScanneruseLocale(Locale locale)Establece la configuración regional de este escáner a la configuración regional especificada.ScanneruseRadix(int radix)Establece la base predeterminada de este escáner a la base especificada.-
Clase que declara el método java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Interfaz que declara el método java.util.Iterator
forEachRemaining
-
-
-
-
Detalles del constructor
-
Scanner
public Scanner(Readable source)
Construye un nuevoScanner, puede generar valores escaneados desde una fuente especificada.- Parámetros
-
source- ImplementaReadablela fuente de caracteres de la interfaz
-
Scanner
public Scanner(InputStream source)
Construye un nuevoScanner, que genera valores escaneados del flujo de entrada especificado. usando la plataforma subyacentedefault charsetConvierte bytes de un flujo en caracteres.- Parámetros
-
sourceEl flujo de entrada a escanear
-
Scanner
public Scanner(InputStream source, String charsetName)
Construye un nuevoScanner, que genera valores escaneados del flujo de entrada especificado. Convierte bytes de un flujo en caracteres usando el juego de caracteres especificado.- Parámetros
-
sourceEl flujo de entrada a escanear -
charsetName- Tipo de codificación utilizado para convertir bytes del flujo en caracteres a escanear. - Excepciones
-
IllegalArgumentExceptionSi el conjunto de caracteres especificado no existe
-
Scanner
public Scanner(InputStream source, Charset charset)
Construye un nuevoScanner, que genera valores escaneados del flujo de entrada especificado. Convierte bytes de un flujo en caracteres usando el juego de caracteres especificado.- Parámetros
-
sourceEl flujo de entrada a escanear -
charset- Conjunto de caracteres utilizado para convertir bytes del archivo en caracteres a escanear. - Desde la versión:
- 10
-
Scanner
public Scanner(File source) throws FileNotFoundException
Construye un nuevoScanner, que genera valores escaneados del archivo especificado. usando la plataforma subyacentedefault charsetConvierte bytes de un archivo en caracteres.- Parámetros
-
sourceEl archivo a escanear - Excepciones
-
FileNotFoundExceptionSi no se encuentra la fuente
-
Scanner
public Scanner(File source, String charsetName) throws FileNotFoundException
Construye un nuevoScanner, que genera valores escaneados del archivo especificado. Convierte bytes de un archivo en caracteres usando el juego de caracteres especificado.- Parámetros
-
sourceEl archivo a escanear -
charsetName- Tipo de codificación utilizado para convertir bytes del archivo en caracteres a escanear. - Excepciones
-
FileNotFoundExceptionSi no se encuentra la fuente -
IllegalArgumentExceptionSi no se encuentra la codificación especificada
-
Scanner
public Scanner(File source, Charset charset) throws IOException
Construye un nuevoScanner, que genera valores escaneados del archivo especificado. Convierte bytes de un archivo en caracteres usando el juego de caracteres especificado.- Parámetros
-
sourceEl archivo a escanear -
charset- Conjunto de caracteres utilizado para convertir bytes del archivo en caracteres a escanear. - Excepciones
-
IOException- Si se produce un error de E/S al abrir el origen. - Desde la versión:
- 10
-
Scanner
public Scanner(Path source) throws IOException
Construye un nuevoScanner, que genera valores escaneados del archivo especificado. usando la plataforma subyacentedefault charsetConvierte bytes de un archivo en caracteres.- Parámetros
-
sourceLa ruta del archivo a escanear - Excepciones
-
IOException- Si se produce un error de E/S al abrir el origen. - Desde la versión:
- 1.7
-
Scanner
public Scanner(Path source, String charsetName) throws IOException
Construye un nuevoScanner, que genera valores escaneados del archivo especificado. Convierte bytes de un archivo en caracteres usando el juego de caracteres especificado.- Parámetros
-
sourceLa ruta del archivo a escanear -
charsetName- Tipo de codificación utilizado para convertir bytes del archivo en caracteres a escanear. - Excepciones
-
IOException- Si se produce un error de E/S al abrir el origen. -
IllegalArgumentExceptionSi no se encuentra la codificación especificada - Desde la versión:
- 1.7
-
Scanner
public Scanner(Path source, Charset charset) throws IOException
Construye un nuevoScanner, que genera valores escaneados del archivo especificado. Convierte bytes de un archivo en caracteres usando el juego de caracteres especificado.- Parámetros
-
sourceLa ruta del archivo a escanear -
charset- Conjunto de caracteres utilizado para convertir bytes del archivo en caracteres a escanear. - Excepciones
-
IOException- Si se produce un error de E/S al abrir el origen. - Desde la versión:
- 10
-
Scanner
public Scanner(String source)
Construye un nuevoScanner, que genera valores escaneados de la cadena especificada.- Parámetros
-
sourceLa cadena a escanear
-
Scanner
public Scanner(ReadableByteChannel source)
Construye un nuevoScanner, que puede generar valores escaneados del canal especificado. usando la plataforma subyacentedefault charsetConvierte bytes de la fuente en caracteres.- Parámetros
-
sourceEl canal a escanear
-
Scanner
public Scanner(ReadableByteChannel source, String charsetName)
Construye un nuevoScanner, que puede generar valores escaneados del canal especificado. Convierte bytes de la fuente en caracteres usando el juego de caracteres especificado.- Parámetros
-
sourceEl canal a escanear -
charsetName- Tipo de codificación utilizado para convertir bytes del canal en caracteres a escanear. - Excepciones
-
IllegalArgumentExceptionSi el conjunto de caracteres especificado no existe
-
Scanner
public Scanner(ReadableByteChannel source, Charset charset)
Construye un nuevoScanner, que puede generar valores escaneados del canal especificado. Convierte bytes de la fuente en caracteres usando el juego de caracteres especificado.- Parámetros
-
sourceEl canal a escanear -
charset- Tipo de codificación utilizado para convertir bytes del canal en caracteres a escanear. - Desde la versión:
- 10
-
-
Detalles del método
-
close
public void close()
Cierra este escáner.Si este escáner aún no se ha cerrado, entonces si su subyacentereadabletambién implementa
Closeableinterfaz, se invocará el método close del legibleclosemétodo. Si este escáner ya está cerrado, invocar este método no tendrá efecto.Después de que el escáner se haya cerrado, intentar realizar operaciones de búsqueda provocará
IllegalStateException。- Specified by:
-
closeEn la interfazAutoCloseable - Specified by:
-
closeEn la interfazCloseable
-
ioException
public IOException ioException()
DevuelveIOExceptionFinalmente lanzado a través de este.Scannerlo básico deReadable。 Si no existe tal excepción, este método devuelvenull。- Resultado
- La última excepción del Readable de este escáner
-
delimiter
public Pattern delimiter()
DevuelvePatternEsteScannerActualmente se utiliza para hacer coincidir los delimitadores.- Resultado
- El patrón de delimitación de este escáner.
-
useDelimiter
public Scanner useDelimiter(Pattern pattern)
Establece el patrón delimitador de este escáner al patrón especificado.- Parámetros
-
pattern-patternEl patrón - Resultado
- este escáner
-
useDelimiter
public Scanner useDelimiter(String pattern)
Establece el patrón delimitador de este escáner al construido a partir de la especificada.Stringel patrón construido.La llamada
useDelimiter(pattern)el comportamiento y la invocación de este método de la formauseDelimiter(Pattern.compile(pattern))。La llamada
reset()el método establecerá el delimitador del escáner endefault 。- Parámetros
-
patternLa cadena que especifica el patrón de delimitación - Resultado
- este escáner
-
locale
public Locale locale()
Devuelve la configuración regional de este escáner.La configuración regional del escáner afecta a muchos de los elementos de los primitivos predeterminados que coinciden con expresiones regulares; véase el anteriorlocalized numbers 。
- Resultado
- La configuración regional de este escáner
-
useLocale
public Scanner useLocale(Locale locale)
Establece la configuración regional de este escáner a la configuración regional especificada.La configuración regional del escáner afecta a muchos de los elementos de los primitivos predeterminados que coinciden con expresiones regulares; véase el anteriorlocalized numbers 。
La llamada
reset()el método establecerá la configuración regional del escáner eninitial locale 。- Parámetros
-
locale- Cadena que especifica la configuración regional a utilizar. - Resultado
- este escáner
-
radix
public int radix()
Devuelve la base predeterminada de este escáner.La base del escáner afecta a los elementos numéricos predeterminados que coinciden con expresiones regulares; véase el anteriorlocalized numbers 。
- Resultado
- La base predeterminada de este escáner
-
useRadix
public Scanner useRadix(int radix)
Establece la base predeterminada de este escáner a la base especificada.La base del escáner afecta a los elementos numéricos predeterminados que coinciden con expresiones regulares; véase el anteriorlocalized numbers 。
si la base es menor que
Character.MIN_RADIXo mayor queCharacter.MAX_RADIX, se lanzaIllegalArgumentException。La llamada
reset()el método establecerá la base del escáner en10。- Parámetros
-
radixLa base utilizada al escanear números - Resultado
- este escáner
- Excepciones
-
IllegalArgumentExceptionSi la base está fuera de rango
-
match
public MatchResult match()
Devuelve el resultado de coincidencia de la última operación de escaneo realizada por este escáner. si no se realizó ninguna coincidencia, o la última coincidenciaIllegalStateExceptionentonces este método lanzaIllegalStateException。varios
nextde los métodosScannerhace disponible el resultado de la coincidencia si terminan sin lanzar una excepción. Por ejemplo, al llamar al que devuelve intnextInt()después del método, este método devuelveMatchResultpara buscar el definido anteriormenteIntegerexpresión regular. Del mismo modo,findInLine(),findWithinHorizon()yskip()el método devolverá un resultado de coincidencia, si tienen éxito.- Resultado
- Resultado de la última operación de coincidencia
- Excepciones
-
IllegalStateException- Si no hay ningún resultado de coincidencia disponible
-
toString
public String toString()
Devuelve este
Scannerla representación de cadena deScanner。Scannerla representación de cadena deScannerContiene información que puede ser útil para la depuración. El formato específico no está especificado.
-
hasNext
public boolean hasNext()
Devuelve true si hay otro token en la entrada de este escáner. Mientras espera la exploración de la entrada, este método puede bloquearse. El escáner no avanzará más allá de ninguna entrada.- Specified by:
-
hasNext, la interfazIterator<String> - Resultado
- Devuelve true si y solo si este escáner tiene otro token.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado - Véase también:
-
Iterator
-
next
public String next()
Busca y devuelve el siguiente token completo de este escáner. La entrada antes y después de completar el token es la que coincide con el patrón delimitador. Incluso si se ha llamado previamentehasNext()Devuelvetrue, este método también puede, mientras espera la exploración de la entradatrue。- Specified by:
-
nextInterfazIterator<String> - Resultado
- siguiente token
- Excepciones
-
NoSuchElementExceptionSi no hay más tokens disponibles -
IllegalStateExceptionSi este escáner está cerrado - Véase también:
-
Iterator
-
remove
public void remove()
IteratorEsta implementación no admite la operación de eliminación.- Specified by:
-
removeEn la interfazIterator<String> - Excepciones
-
UnsupportedOperationExceptionSi se invoca este método. - Véase también:
-
Iterator
-
hasNext
public boolean hasNext(String pattern)
Devuelve true si el siguiente token coincide con el patrón construido a partir de la cadena especificada. El escáner no avanzará más allá de ninguna entrada.La llamada
hasNext(pattern)el comportamiento y la invocación de este método de la formahasNext(Pattern.compile(pattern))。- Parámetros
-
patternLa cadena que especifica el patrón a escanear - Resultado
- Devuelve true si y solo si este escáner tiene otro token que coincide con el patrón especificado.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
next
public String next(String pattern)
Devuelve el siguiente token si coincide con el patrón construido a partir de la cadena especificada. Si la coincidencia tiene éxito, el escáner avanzará más allá de la entrada que coincide con el patrón.La llamada
next(pattern)el comportamiento y la invocación de este método de la formanext(Pattern.compile(pattern))maneranext(Pattern.compile(pattern))。- Parámetros
-
patternLa cadena que especifica el patrón a escanear - Resultado
- siguiente token
- Excepciones
-
NoSuchElementExceptionSi no hay ningún token de este tipo disponible -
IllegalStateExceptionSi este escáner está cerrado
-
hasNext
public boolean hasNext(Pattern pattern)
Devuelve true si el siguiente token completo coincide con el patrón especificado. Un token completo va precedido y seguido de la entrada que coincide con el patrón delimitador. Este método puede bloquearse mientras espera la entrada. El escáner no avanzará más allá de ninguna entrada.- Parámetros
-
patternEl patrón a escanear - Resultado
- Devuelve true si y solo si este escáner tiene otro token que coincide con el patrón especificado.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
next
public String next(Pattern pattern)
Devuelve el siguiente token si coincide con el patrón especificado. Incluso si se ha llamado previamentehasNext(Pattern)Devuelvetrue, este método también puede, mientras espera la exploración de la entradatrue。 Si la coincidencia tiene éxito, el escáner avanzará más allá de la entrada que coincide con el patrón.- Parámetros
-
patternEl patrón a escanear - Resultado
- siguiente token
- Excepciones
-
NoSuchElementExceptionSi no hay más tokens disponibles -
IllegalStateExceptionSi este escáner está cerrado
-
hasNextLine
public boolean hasNextLine()
Devuelve true si hay otra línea en la entrada de este escáner. Este método puede bloquearse mientras espera la entrada. El escáner no avanzará más allá de ninguna entrada.- Resultado
- Es verdadero si y solo si este escáner tiene otra línea de entrada.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
nextLine
public String nextLine()
Avanza este escáner más allá de la línea actual y devuelve la entrada omitida. Este método devuelve el resto de la línea actual, excluyendo cualquier separador de línea al final. La posición se establece al inicio de la siguiente línea.Dado que este método continúa buscando un separador de línea en la entrada, si no existe ningún separador de línea, puede almacenar en búfer toda la entrada de la línea que se va a omitir.
- Resultado
- línea omitida
- Excepciones
-
NoSuchElementExceptionSi no se encuentra ninguna línea -
IllegalStateExceptionSi este escáner está cerrado
-
findInLine
public String findInLine(String pattern)
Intenta encontrar el siguiente patrón construido a partir de la cadena especificada, ignorando los delimitadores.La llamada
findInLine(pattern)el comportamiento y la invocación de este método de la formafindInLine(Pattern.compile(pattern))。- Parámetros
-
pattern- Cadena que especifica el patrón a buscar - Resultado
- El texto que coincide con el patrón especificado
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
findInLine
public String findInLine(Pattern pattern)
Intenta encontrar la siguiente coincidencia del patrón especificado, ignorando los delimitadores. Si se encuentra el patrón antes del siguiente separador de línea, el escáner avanzará más allá de la entrada que coincide y devolverá la cadena que coincide con el patrón. Si no se detecta dicho patrón en la entrada hasta el siguiente separador de línea, entonces devuelvenullY la posición del escáner permanece sin cambios. Este método puede bloquearse a la espera de una entrada que coincida con el patrón.Debido a que este método continúa buscando en la entrada el patrón especificado, si no existe ningún separador de línea, puede almacenar en el búfer toda la entrada necesaria para buscar el token requerido.
- Parámetros
-
patternEl patrón a escanear - Resultado
- El texto que coincide con el patrón especificado
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
findWithinHorizon
public String findWithinHorizon(String pattern, int horizon)
Intenta encontrar el siguiente patrón construido a partir de la cadena especificada, ignorando los delimitadores.La llamada
findWithinHorizon(pattern)el comportamiento y la invocación de este método de la formafindWithinHorizon(Pattern.compile(pattern), horizon)。- Parámetros
-
pattern- Cadena que especifica el patrón a buscar -
horizon- Rango de búsqueda - Resultado
- El texto que coincide con el patrón especificado
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado -
IllegalArgumentExceptionSi el horizonte es negativo
-
findWithinHorizon
public String findWithinHorizon(Pattern pattern, int horizon)
Intenta encontrar la siguiente coincidencia del patrón especificado.Este método busca en la entrada hasta el horizonte de búsqueda especificado, ignorando los delimitadores. Si se encuentra el patrón, el escáner avanzará más allá de la entrada coincidente y devolverá la cadena que coincide con el patrón. Si no se detecta dicho patrón, devuelve null y la posición del escáner permanece sin cambios. Este método puede bloquearse a la espera de una entrada que coincida con el patrón.
El escáner nunca buscará más allá de su posición actual
horizonpuntos de código. Tenga en cuenta que una coincidencia puede estar limitada por el horizonte; Es decir, si el horizonte es más grande, un resultado de coincidencia arbitrario puede ser diferente. El escáner trata el horizonte como un límite transparente no anclado (véaseMatcher.useTransparentBounds(boolean)yMatcher.useAnchoringBounds(boolean))。Si horizon es
0entonces se ignora horizon y este método continúa buscando en la entrada el patrón especificado sin límite. En este caso, puede almacenar en el búfer toda la entrada mientras busca el patrón.Si horizon es negativo, se lanza IllegalArgumentException.
- Parámetros
-
patternEl patrón a escanear -
horizon- Rango de búsqueda - Resultado
- El texto que coincide con el patrón especificado
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado -
IllegalArgumentExceptionSi el horizonte es negativo
-
skip
public Scanner skip(Pattern pattern)
Omite la entrada que coincide con el patrón especificado, ignorando los delimitadores. Si la coincidencia anclada del patrón especificado tiene éxito, este método omitirá la entrada.Si no se encuentra una coincidencia con el patrón especificado en la posición actual, no se omite ninguna entrada y se lanza
NoSuchElementException。Dado que este método intenta hacer coincidir el patrón especificado comenzando en la posición actual del escáner, los patrones que pueden coincidir con una gran cantidad de entrada (por ejemplo, «.*») pueden hacer que el escáner almacene en búfer una gran cantidad de entrada.
Tenga en cuenta que es posible, mediante el uso de un patrón que no puede coincidir (por ejemplo,
sc.skip("[ \t]*")omitir algún contenido sin correrNoSuchElementExceptionel riesgo de.- Parámetros
-
patternLa cadena que especifica el patrón a omitir - Resultado
- este escáner
- Excepciones
-
NoSuchElementExceptionSi no se encuentra el patrón especificado -
IllegalStateExceptionSi este escáner está cerrado
-
skip
public Scanner skip(String pattern)
Omite la entrada que coincide con el patrón construido a partir de la cadena especificada.La llamada
skip(pattern)el comportamiento y la invocación de este método de la formaskip(Pattern.compile(pattern))maneraskip(Pattern.compile(pattern))。- Parámetros
-
patternLa cadena que especifica el patrón a omitir - Resultado
- este escáner
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
hasNextBoolean
public boolean hasNextBoolean()
Devuelve true si, utilizando un patrón que no distingue mayúsculas de minúsculas creado a partir de la cadena "true | false", el siguiente token de la entrada de este escáner puede interpretarse como un valor booleano. El escáner no avanzará más allá de la entrada coincidente.- Resultado
- Devuelve true si y solo si el siguiente token de este escáner es un valor booleano válido.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
nextBoolean
public boolean nextBoolean()
Escanea el siguiente token de la entrada como un valor booleano y devuelve ese valor. Si el siguiente token no se puede convertir a un valor booleano válido, este método lanzaráInputMismatchException。 Si la coincidencia es exitosa, el escáner avanzará más allá de la entrada coincidente.- Resultado
- El valor booleano escaneado de la entrada
- Excepciones
-
InputMismatchException- Si el siguiente token no es un valor booleano válido. -
NoSuchElementExceptionSi la entrada se ha agotado -
IllegalStateExceptionSi este escáner está cerrado
-
hasNextByte
public boolean hasNextByte()
Si se utilizanextByte()Devuelve true si el método interpreta el siguiente token de la entrada de este escáner como un valor byte en la base predeterminada. El escáner no avanzará más allá de ninguna entrada.- Resultado
- Es verdadero si y solo si el siguiente token de este escáner es un valor de byte válido.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
hasNextByte
public boolean hasNextByte(int radix)
Si se utilizanextByte()Devuelve true si el método interpreta el siguiente token de la entrada de este escáner como un valor byte en la base especificada. El escáner no avanzará más allá de ninguna entrada.si la base es menor que
Character.MIN_RADIXo mayor queCharacter.MAX_RADIX, se lanzaIllegalArgumentException。- Parámetros
-
radix- La base utilizada para interpretar el token como un valor de byte. - Resultado
- Es verdadero si y solo si el siguiente token de este escáner es un valor de byte válido.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado -
IllegalArgumentExceptionSi la base está fuera de rango
-
nextByte
public byte nextByte()
Escanea el siguiente token de la entrada comobyte。La llamada
nextByte()el comportamiento y la invocación de este método de la formanextByte(radix), donderadixes la base predeterminada de este escáner.- Resultado
-
byteEscanea desde la entrada - Excepciones
-
InputMismatchExceptionSi el siguiente token no coincideenteroLa expresión regular no coincide o el valor está fuera de rango. -
NoSuchElementExceptionSi la entrada se ha agotado -
IllegalStateExceptionSi este escáner está cerrado
-
nextByte
public byte nextByte(int radix)
Escanea el siguiente token de la entrada comobyte。 Si el siguiente token no se puede convertir a un valor de byte válido, este método lanzaráInputMismatchException, como se describe a continuación. Si la conversión es exitosa, el escáner avanzará más allá de la entrada coincidente.Si el siguiente token coincide con laIntegerexpresión regular definida anteriormente, entonces el token se convertirá a
bytevalor, como si se eliminaran todos los prefijos específicos de la configuración regional, los separadores de grupo y los sufijos específicos de la configuración regional, y luego medianteCharacter.digitla asignación de dígitos no ASCII a dígitos ASCII,anteponiendosi están presentes el prefijo y el sufijo negativos específicos de la configuración regional, entonces se pasa el signo negativo (-) al que tiene la base especificadaByte.parseByte。si la base es menor que
Character.MIN_RADIXo mayor queCharacter.MAX_RADIX, se lanzaIllegalArgumentException。- Parámetros
-
radix- La base utilizada para interpretar el token como un valor de byte. - Resultado
- Escanea desde la entrada
byte - Excepciones
-
InputMismatchExceptionSi el siguiente token no coincideenteroLa expresión regular no coincide o el valor está fuera de rango. -
NoSuchElementExceptionSi la entrada se ha agotado -
IllegalStateExceptionSi este escáner está cerrado -
IllegalArgumentExceptionSi la base está fuera de rango
-
hasNextShort
public boolean hasNextShort()
Si se utilizanextShort()Devuelve true si el método puede interpretar el siguiente token en la entrada de este escáner como un valor short en la base predeterminada. El escáner no avanzará más allá de ninguna entrada.- Resultado
- Es verdadero si y solo si el siguiente token de este escáner es un valor short válido en la base predeterminada.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
hasNextShort
public boolean hasNextShort(int radix)
Si se utilizanextShort()Devuelve true si el método puede interpretar el siguiente token en la entrada de este escáner como un valor short en la base especificada. El escáner no avanzará más allá de ninguna entrada.si la base es menor que
Character.MIN_RADIXo mayor queCharacter.MAX_RADIX, se lanzaIllegalArgumentException。- Parámetros
-
radix- La base utilizada para interpretar el token como un valor short. - Resultado
- Es verdadero si y solo si el siguiente token de este escáner es un valor short válido en la base especificada.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado -
IllegalArgumentExceptionSi la base está fuera de rango
-
nextShort
public short nextShort()
Escanea el siguiente token de la entrada comoshort。La llamada
nextShort()el comportamiento y la invocación de este método de la formanextShort(radix)Exactamente igual, donderadixes la base predeterminada de este escáner.- Resultado
- Escanea desde la entrada
short - Excepciones
-
InputMismatchExceptionSi el siguiente token no coincideenteroLa expresión regular no coincide o el valor está fuera de rango. -
NoSuchElementExceptionSi la entrada se agota -
IllegalStateExceptionSi este escáner está cerrado
-
nextShort
public short nextShort(int radix)
Escanea el siguiente token de la entrada comoshort。 Si el siguiente token no se puede convertir en un valor short válido, este método lanzaráInputMismatchException, como se describe a continuación. Si la conversión es exitosa, el escáner avanzará más allá de la entrada coincidente.Si el siguiente token coincide con laIntegerexpresión regular definida anteriormente, entonces el token se convertirá a
shortvalor, como si se eliminaran todos los prefijos específicos de la configuración regional, los separadores de grupo y los sufijos específicos de la configuración regional, y luegoCharacter.digitmapeando los dígitos no ASCII a dígitos ASCII,anteponiendosi están presentes el prefijo y el sufijo negativos específicos de la configuración regional, entonces se pasa el signo negativo (-) al que tiene la base especificadaShort.parseShort。si la base es menor que
Character.MIN_RADIXo mayor queCharacter.MAX_RADIX, se lanzaIllegalArgumentException。- Parámetros
-
radix- La base utilizada para interpretar el token como un valor short. - Resultado
-
shortEscanea desde la entrada - Excepciones
-
InputMismatchExceptionSi el siguiente token no coincideenteroLa expresión regular no coincide o el valor está fuera de rango. -
NoSuchElementExceptionSi la entrada se ha agotado -
IllegalStateExceptionSi este escáner está cerrado -
IllegalArgumentExceptionSi la base está fuera de rango
-
hasNextInt
public boolean hasNextInt()
Si el siguiente token en la entrada de este escáner puede interpretarsenextInt()Devuelve true si el método puede interpretar el siguiente token en la entrada de este escáner como un valor int en la base predeterminada. El escáner no avanzará más allá de ninguna entrada.- Resultado
- Devuelve true si y solo si el siguiente token de este escáner es un valor int válido.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
hasNextInt
public boolean hasNextInt(int radix)
Si el siguiente token en la entrada de este escáner puede interpretarsenextInt()Devuelve true si el método interpreta el siguiente token como un valor int en la base especificada. El escáner no avanzará más allá de ninguna entrada.si la base es menor que
Character.MIN_RADIXo mayor queCharacter.MAX_RADIX, se lanzaIllegalArgumentException。- Parámetros
-
radix- La base utilizada para interpretar el token como un valor int. - Resultado
- Devuelve true si y solo si el siguiente token de este escáner es un valor int válido.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado -
IllegalArgumentExceptionSi la base está fuera de rango
-
nextInt
public int nextInt()
Escanea el siguiente token de la entrada comoint。La llamada
nextInt()el comportamiento y la invocación de este método de la formanextInt(radix), donderadixes la base predeterminada de este escáner.- Resultado
-
intEscanea desde la entrada - Excepciones
-
InputMismatchExceptionSi el siguiente token no coincideenteroLa expresión regular no coincide o el valor está fuera de rango. -
NoSuchElementExceptionSi la entrada se ha agotado -
IllegalStateExceptionSi este escáner está cerrado
-
nextInt
public int nextInt(int radix)
Escanea el siguiente token de la entrada comoint。 Si el siguiente token no se puede convertir en un valor int válido, este método lanzaráInputMismatchException, como se describe a continuación. Si la conversión es exitosa, el escáner avanzará más allá de la entrada coincidente.Si el siguiente token coincide con laIntegerexpresión regular definida anteriormente, entonces el token se convertirá a
intvalor, como si se eliminaran todos los prefijos específicos de la configuración regional, los separadores de grupo y los sufijos específicos de la configuración regional, y luegoCharacter.digitmapeando los dígitos no ASCII a dígitos ASCII,anteponiendoSi existen un prefijo y un sufijo negativos específicos de la configuración regional, se utiliza el signo menos (-) y la cadena resultante se pasa a ... con la base especificada.Integer.parseInt。si la base es menor que
Character.MIN_RADIXo mayor queCharacter.MAX_RADIX, se lanzaIllegalArgumentException。- Parámetros
-
radix- La base utilizada para interpretar el token como un valor int. - Resultado
-
intEscanea desde la entrada - Excepciones
-
InputMismatchExceptionSi el siguiente token no coincideenteroLa expresión regular no coincide o el valor está fuera de rango. -
NoSuchElementExceptionSi la entrada se ha agotado -
IllegalStateExceptionSi este escáner está cerrado -
IllegalArgumentExceptionSi la base está fuera de rango
-
hasNextLong
public boolean hasNextLong()
Si se utilizanextLong()Devuelve true si el método puede interpretar el siguiente token en la entrada de este escáner como un valor long en la base predeterminada. El escáner no avanzará más allá de ninguna entrada.- Resultado
- Es verdadero si y solo si el siguiente token de este escáner es un valor long válido.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
hasNextLong
public boolean hasNextLong(int radix)
Si el siguiente token en la entrada de este escáner puede interpretarsenextLong()Devuelve true si el método puede interpretar el siguiente token en la entrada de este escáner como un valor long en la base especificada. El escáner no avanzará más allá de ninguna entrada.si la base es menor que
Character.MIN_RADIXo mayor queCharacter.MAX_RADIX, se lanzaIllegalArgumentException。- Parámetros
-
radix- La base utilizada para interpretar el token como un valor long. - Resultado
- Es verdadero si y solo si el siguiente token de este escáner es un valor long válido.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado -
IllegalArgumentExceptionSi la base está fuera de rango
-
nextLong
public long nextLong()
Escanea el siguiente token de la entrada comolong。La llamada
nextLong()el comportamiento y la invocación de este método de la formanextLong(radix), donderadixes la base predeterminada de este escáner.- Resultado
-
longEscanea desde la entrada - Excepciones
-
InputMismatchExceptionSi el siguiente token no coincideenteroLa expresión regular no coincide o el valor está fuera de rango. -
NoSuchElementExceptionSi la entrada se ha agotado -
IllegalStateExceptionSi este escáner está cerrado
-
nextLong
public long nextLong(int radix)
Escanea el siguiente token de la entrada comolong。 Si el siguiente token no se puede convertir en un valor long válido, este método lanzaráInputMismatchException, como se describe a continuación. Si la conversión es exitosa, el escáner avanzará más allá de la entrada coincidente.Si el siguiente token coincide con laIntegercoincide con la expresión regular,entoncesel token se convierte en
longvalor, como si se eliminaran todos los prefijos específicos de la configuración regional, los separadores de grupo y los sufijos específicos de la configuración regional, y luegoCharacter.digitmapeando los dígitos no ASCII a dígitos ASCII,anteponiendoSi existen un prefijo y un sufijo negativos específicos de la configuración regional, se utiliza el signo menos (-) y la cadena resultante se pasa a ... con la base especificada.Long.parseLong。si la base es menor que
Character.MIN_RADIXo mayor queCharacter.MAX_RADIX, se lanzaIllegalArgumentException。- Parámetros
-
radix- La base utilizada para interpretar el token como un valor int. - Resultado
- Escanea desde la entrada
long - Excepciones
-
InputMismatchExceptionSi el siguiente token no coincideenteroLa expresión regular no coincide o el valor está fuera de rango. -
NoSuchElementExceptionSi la entrada se ha agotado -
IllegalStateExceptionSi este escáner está cerrado -
IllegalArgumentExceptionSi la base está fuera de rango
-
hasNextFloat
public boolean hasNextFloat()
Si se utilizanextFloat()Devuelve true si el método puede interpretar el siguiente token en la entrada de este escáner como un valor float. El escáner no avanzará más allá de ninguna entrada.- Resultado
- Devuelve true si y solo si el siguiente token de este escáner es un valor de punto flotante válido.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
nextFloat
public float nextFloat()
Escanea el siguiente token de la entrada comofloat。 Si el siguiente token no puede convertirse en un valor de punto flotante válido, este método lanzaráInputMismatchException, como se describe a continuación. Si la conversión es exitosa, el escáner avanzará más allá de la entrada coincidente.Si el siguiente token coincide con laFloatcoincide con la expresión regular,entoncesel token se convierte en
floatvalor, como si se eliminaran todos los prefijos específicos de la configuración regional, los separadores de grupo y los sufijos específicos de la configuración regional, y luegoCharacter.digitmapeando los dígitos no ASCII a dígitos ASCII,anteponiendoSi existen prefijos y sufijos negativos específicos de la configuración regional, se utiliza el signo menos ( - ) y la cadena resultante se pasa aFloat.parseFloat。 Si el token coincide con la cadena NaN o Infinity localizada, se pasa "NaN" o "Infinity" según corresponda aFloat.parseFloat。- Resultado
- Escanea desde la entrada
float - Excepciones
-
InputMismatchExceptionSi el siguiente token no coincideFloatLa expresión regular no coincide o el valor está fuera de rango. -
NoSuchElementExceptionSi la entrada se ha agotado -
IllegalStateExceptionSi este escáner está cerrado
-
hasNextDouble
public boolean hasNextDouble()
Si se utilizanextDouble()Devuelve true si el método interpreta el siguiente token de la entrada de este escáner como un valor double. El escáner no avanzará más allá de ninguna entrada.- Resultado
- Es verdadero si y solo si el siguiente token de este escáner es un valor double válido.
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
nextDouble
public double nextDouble()
Escanea el siguiente token de la entrada comodouble。 Si el siguiente token no puede convertirse en un valor double válido, este método lanzaráInputMismatchException。 Si la conversión es exitosa, el escáner avanzará más allá de la entrada coincidente.Si el siguiente token coincide con laFloatexpresión regular definida anteriormente, entonces el token se convertirá a
doublevalor, como si se eliminaran todos los prefijos específicos de la configuración regional, los separadores de grupo y los sufijos específicos de la configuración regional, y luegoCharacter.digitmapeando los dígitos no ASCII a dígitos ASCII,anteponiendoSi existen prefijos y sufijos negativos específicos de la configuración regional, el signo menos ( - ) se pasa aDouble.parseDouble。 Si el token coincide con la cadena NaN o Infinity localizada, se pasa "NaN" o "Infinity" según corresponda aDouble.parseDouble。- Resultado
- Escanea desde la entrada
double - Excepciones
-
InputMismatchExceptionSi el siguiente token no coincideFloatLa expresión regular no coincide o el valor está fuera de rango. -
NoSuchElementExceptionSi la entrada se ha agotado -
IllegalStateExceptionSi este escáner está cerrado
-
hasNextBigInteger
public boolean hasNextBigInteger()
Si se utilizanextBigInteger()El método interpreta el siguiente token de la entrada de este escáner como un valor en la base predeterminadaBigInteger, entonces devuelve true. El escáner no avanzará más allá de ninguna entrada.- Resultado
- Es verdadero si y solo si el siguiente token de este escáner es válido.
BigInteger - Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
hasNextBigInteger
public boolean hasNextBigInteger(int radix)
Si el siguiente token en la entrada de este escáner puede interpretarsenextBigInteger()método en la base especificada interpretado comoBigInteger, entonces devuelve true. El escáner no avanzará más allá de ninguna entrada.si la base es menor que
Character.MIN_RADIXo mayor queCharacter.MAX_RADIX, se lanzaIllegalArgumentException。- Parámetros
-
radix- La base utilizada para interpretar el token como un entero. - Resultado
- Devuelve true si y solo si el siguiente token de este escáner es válido.
BigInteger - Excepciones
-
IllegalStateExceptionSi este escáner está cerrado -
IllegalArgumentExceptionSi la base está fuera de rango
-
nextBigInteger
public BigInteger nextBigInteger()
Escanea el siguiente token de la entrada comoBigInteger。La llamada
nextBigInteger()el comportamiento y la invocación de este método de la formanextBigInteger(radix), donderadixes la base predeterminada de este escáner.- Resultado
-
BigIntegerEscanea desde la entrada - Excepciones
-
InputMismatchExceptionSi el siguiente token no coincideenteroLa expresión regular no coincide o el valor está fuera de rango. -
NoSuchElementExceptionSi la entrada se ha agotado -
IllegalStateExceptionSi este escáner está cerrado
-
nextBigInteger
public BigInteger nextBigInteger(int radix)
Escanea el siguiente token de la entrada comoBigInteger。Si el siguiente token coincide con laIntegerexpresión regular definida anteriormente, entonces el token se convertirá a
BigIntegervalor, como si se eliminaran todos los separadores de grupo, medianteCharacter.digitmapear los dígitos no ASCII a dígitos ASCII, y pasar la cadena resultante aBigInteger(String, int)la base especificada por el constructor.si la base es menor que
Character.MIN_RADIXo mayor queCharacter.MAX_RADIX, se lanzaIllegalArgumentException。- Parámetros
-
radixLa base utilizada para interpretar los tokens - Resultado
- Escanea desde la entrada
BigInteger - Excepciones
-
InputMismatchExceptionSi el siguiente token no coincideenteroLa expresión regular no coincide o el valor está fuera de rango. -
NoSuchElementExceptionSi la entrada se ha agotado -
IllegalStateExceptionSi este escáner está cerrado -
IllegalArgumentExceptionSi la base está fuera de rango
-
hasNextBigDecimal
public boolean hasNextBigDecimal()
Si el siguiente token en la entrada de este escáner puede interpretarsenextBigDecimal()método interpretado comoBigDecimalentonces devuelve true. El escáner no avanzará más allá de ninguna entrada.- Resultado
- Es verdadero si y solo si el siguiente token de este escáner es válido.
BigDecimal - Excepciones
-
IllegalStateExceptionSi este escáner está cerrado
-
nextBigDecimal
public BigDecimal nextBigDecimal()
Escanea el siguiente token de la entrada comoBigDecimal。Si el siguiente token coincide con laDecimalexpresión regular definida anteriormente, entonces el token se convertirá a
BigDecimalvalor, como si se eliminaran todos los separadores de grupo, medianteCharacter.digitmapear los dígitos no ASCII a dígitos ASCII, y pasar la cadena resultante aBigDecimal(String)constructor.- Resultado
- Escanea desde la entrada
BigDecimal - Excepciones
-
InputMismatchExceptionSi el siguiente token no coincideDecimalLa expresión regular no coincide o el valor está fuera de rango. -
NoSuchElementExceptionSi la entrada se ha agotado -
IllegalStateExceptionSi este escáner está cerrado
-
reset
public Scanner reset()
Restablece este escáner.Restablecer el escáner descarta toda la información de estado explícita que pueda haber sido modificada mediante llamadas a
useDelimiter(),useLocale(), ouseRadix()。La llamada
scanner.reset()El comportamiento de este método en esta forma es exactamente el mismo que el de invocarscanner.useDelimiter("\\p{javaWhitespace}+") .useLocale(Locale.getDefault(Locale.Category.FORMAT)) .useRadix(10);- Resultado
- este escáner
- Desde la versión:
- 1.6
-
tokens
public Stream<String> tokens()
Devuelve un flujo de tokens separados por delimitadores de este escáner. El flujo contiene los mismos tokens que se devolverían a partir del estado actual de este escáner, llamando repetidamente anext()método, hasta quehasNext()el método devuelve false.El flujo resultante es secuencial y ordenado. Todos los elementos del flujo no son null.
Comienza a escanear utilizando el estado actual de este escáner cuando se invoca la operación de flujo terminal. Sobre
close()yioException()Las llamadas posteriores a cualquier método de este escáner, salvo la fuente del flujo devuelto, pueden devolver resultados indefinidos o pueden tener efectos indeterminados sobre el flujo devuelto. La fuente del flujo devuelto.SpliteratorSíde fallo rápido , ySi se detecta cualquier llamada de este tipo durante la ejecución del pipeline de flujo, se lanzará una excepción en la medida de lo posible.ConcurrentModificationException。Una vez completada la ejecución del pipeline de flujo, este escáner quedará en un estado indeterminado y no podrá reutilizarse.
Si este escáner contiene un recurso que debe liberarse, debe cerrarse llamando a su
close()método o cerrando el flujo devuelto para cerrar este escáner. Cerrar el flujo cerrará el escáner subyacente. Si el escáner ya está cerrado cuando se invoca este método, o si este escáner se cierra durante la ejecución del pipeline de flujo, se lanzará una excepción.IllegalStateException。Este método puede bloquearse a la espera de más entrada.
- API Note:
-
Por ejemplo, el siguiente código creará una lista de tokens separados por comas a partir de una cadena:
List<String> result = new Scanner("abc,def,,ghi") .useDelimiter(",") .tokens() .collect(Collectors.toList());La lista resultante contendrá
"abc","def", la cadena vacía y"ghi"。 - Resultado
- Flujo continuo de cadenas de tokens
- Excepciones
-
IllegalStateExceptionSi este escáner está cerrado - Desde la versión:
- 9
-
findAll
public Stream<MatchResult> findAll(Pattern pattern)
Devuelve el flujo de resultados de coincidencia de este escáner. siempre quefindWithinHorizon()Cuando se encuentre una coincidencia, el flujo contendrá los mismos resultados en el mismo orden, mediante la llamada afindWithinHorizon(pattern, 0)ymatch()devueltos.El flujo resultante es secuencial y ordenado. Todos los elementos del flujo no son null.
Comienza a escanear utilizando el estado actual de este escáner cuando se invoca la operación de flujo terminal. Sobre
close()yioException()Las llamadas posteriores a cualquier método de este escáner, salvo la fuente del flujo devuelto, pueden devolver resultados indefinidos o pueden causar efectos indefinidos en el flujo devuelto. La fuente del flujo devuelto.SpliteratorSíde fallo rápido, si se detecta cualquier llamada de este tipo durante la ejecución de la canalización de flujo, se lanzará en la medida de lo posible.ConcurrentModificationException。Una vez completada la ejecución del pipeline de flujo, este escáner quedará en un estado indeterminado y no podrá reutilizarse.
Si este escáner contiene un recurso que debe liberarse, debe cerrarse llamando a su
close()método o cerrando el flujo devuelto para cerrar este escáner. Cerrar el flujo cerrará el escáner subyacente. Si el escáner ya está cerrado cuando se invoca este método, o si este escáner se cierra durante la ejecución del pipeline de flujo, se lanzará una excepción.IllegalStateException。y
findWithinHorizon()Al igual que el método, este método puede bloquearse esperando otra entrada, y puede almacenar en búfer una cantidad ilimitada de entrada mientras busca una coincidencia.- API Note:
-
Por ejemplo, el siguiente código leerá un archivo y devolverá una lista de todas las secuencias de caracteres compuestas por siete o más letras mayúsculas latinas:
try (Scanner sc = new Scanner(Path.of("input.txt"))) { Pattern pat = Pattern.compile("[A-Z]{7,}"); List<String> capWords = sc.findAll(pat) .map(MatchResult::group) .collect(Collectors.toList()); } - Parámetros
-
patternEl patrón con el que debe coincidir - Resultado
- Flujo continuo de resultados de coincidencia
- Excepciones
-
NullPointerException- Si pattern es null -
IllegalStateExceptionSi este escáner está cerrado - Desde la versión:
- 9
-
findAll
public Stream<MatchResult> findAll(String patString)
Devuelve un flujo de resultados de coincidencia que coinciden con la cadena de patrón proporcionada. El efecto es equivalente al siguiente código:scanner.findAll(Pattern.compile(patString))- Parámetros
-
patString- Cadena de patrón - Resultado
- Flujo continuo de resultados de coincidencia
- Excepciones
-
NullPointerException- Si patString es null -
IllegalStateExceptionSi este escáner está cerrado -
PatternSyntaxExceptionSi la sintaxis de la expresión regular no es válida - Desde la versión:
- 9
- Véase también:
-
Pattern
-
-