módulo  java.base
paquete  java.util

Class 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 desdeSystem.inleer números:

    
         Scanner sc = new Scanner(System.in);
         int i = sc.nextInt();
     

    Como otro ejemplo, este código permite desde archivomyNumbersasignació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
         blue
     

    Mediante 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.

    defindInLine() , 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 lanzaInputMismatchExceptionCuando, 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ónReadableEl 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 。

    CuandoScannerAl 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étodouseRadix(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 regionalDecimalFormatobjetodfy 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
      void close()
      Cierra este escáner.
      Pattern delimiter()
      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.
      String findInLine​(String pattern)
      Intenta encontrar el siguiente patrón construido a partir de la cadena especificada, ignorando los delimitadores.
      String findInLine​(Pattern pattern)
      Intenta encontrar la siguiente coincidencia del patrón especificado, ignorando los delimitadores.
      String findWithinHorizon​(String pattern, int horizon)
      Intenta encontrar el siguiente patrón construido a partir de la cadena especificada, ignorando los delimitadores.
      String findWithinHorizon​(Pattern pattern, int horizon)
      Intenta encontrar la siguiente coincidencia del patrón especificado.
      boolean hasNext()
      Devuelve true si hay otro token en la entrada de este escáner.
      boolean hasNext​(String pattern)
      Devuelve true si el siguiente token coincide con el patrón construido a partir de la cadena especificada.
      boolean hasNext​(Pattern pattern)
      Devuelve true si el siguiente token completo coincide con el patrón especificado.
      boolean hasNextBigDecimal()
      Si el siguiente token en la entrada de este escáner puede interpretarsenextBigDecimal()método interpretado comoBigDecimalentonces devuelve true.
      boolean hasNextBigInteger()
      Si el siguiente token en la entrada de este escáner puede interpretarsenextBigInteger()método en la base predeterminada interpretado comoBigInteger, entonces devuelve true.
      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.
      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.
      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.
      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.
      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.
      boolean hasNextFloat()
      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.
      boolean hasNextInt()
      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.
      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.
      boolean hasNextLine()
      Devuelve true si hay otra línea en la entrada de este escáner.
      boolean hasNextLong()
      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.
      boolean hasNextLong​(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.
      boolean hasNextShort()
      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.
      boolean hasNextShort​(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.
      IOException ioException()
      DevuelveIOExceptionFinalmente lanzado a través de este.Scannerlo básico deReadable 。
      Locale locale()
      Devuelve la configuración regional de este escáner.
      MatchResult match()
      Devuelve el resultado de coincidencia de la última operación de escaneo realizada por este escáner.
      String next()
      Busca y devuelve el siguiente token completo de este escáner.
      String next​(String pattern)
      Devuelve el siguiente token si coincide con el patrón construido a partir de la cadena especificada.
      String next​(Pattern pattern)
      Devuelve el siguiente token si coincide con el patrón especificado.
      BigDecimal nextBigDecimal()
      Escanea el siguiente token de la entrada comoBigDecimal 。
      BigInteger nextBigInteger()
      Escanea el siguiente token de la entrada comoBigInteger 。
      BigInteger nextBigInteger​(int radix)
      Escanea el siguiente token de la entrada comoBigInteger 。
      boolean nextBoolean()
      Escanea el siguiente token de la entrada como un valor booleano y devuelve ese valor.
      byte nextByte()
      Escanea el siguiente token de la entrada comobyte 。
      byte nextByte​(int radix)
      Escanea el siguiente token de la entrada comobyte 。
      double nextDouble()
      Escanea el siguiente token de la entrada comodouble 。
      float nextFloat()
      Escanea el siguiente token de la entrada comofloat 。
      int nextInt()
      Escanea el siguiente token de la entrada comoint 。
      int nextInt​(int radix)
      Escanea el siguiente token de la entrada comoint 。
      String nextLine()
      Avanza este escáner más allá de la línea actual y devuelve la entrada omitida.
      long nextLong()
      Escanea el siguiente token de la entrada comolong 。
      long nextLong​(int radix)
      Escanea el siguiente token de la entrada comolong 。
      short nextShort()
      Escanea el siguiente token de la entrada comoshort 。
      short nextShort​(int radix)
      Escanea el siguiente token de la entrada comoshort 。
      int radix()
      Devuelve la base predeterminada de este escáner.
      void remove()
      IteratorEsta implementación no admite la operación de eliminación.
      Scanner reset()
      Restablece este escáner.
      Scanner skip​(String pattern)
      Omite la entrada que coincide con el patrón construido a partir de la cadena especificada.
      Scanner skip​(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.
      String toString()
      Devuelve esteScannerla representación de cadena deScanner 。
      Scanner useDelimiter​(String pattern)
      Establece el patrón delimitador de este escáner al construido a partir de la especificada.Stringel patrón construido.
      Scanner useDelimiter​(Pattern pattern)
      Establece el patrón delimitador de este escáner al patrón especificado.
      Scanner useLocale​(Locale locale)
      Establece la configuración regional de este escáner a la configuración regional especificada.
      Scanner useRadix​(int radix)
      Establece la base predeterminada de este escáner a la base especificada.
    • 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 implementaCloseableinterfaz, 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 llamadauseDelimiter(pattern)el comportamiento y la invocación de este método de la formauseDelimiter(Pattern.compile(pattern)) 。

        La llamadareset()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 llamadareset()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 queCharacter.MIN_RADIXo mayor queCharacter.MAX_RADIX, se lanzaIllegalArgumentException 。

        La llamadareset()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 。

        variosnextde 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 esteScannerla 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.

        Sobrescribe:
        toStringCategoría de cursoObject
        Resultado
        La representación de cadena de este escáner
      • 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
      • 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 llamadahasNext(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 llamadanext(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 llamadafindInLine(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 llamadafindWithinHorizon(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 actualhorizonpuntos 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 es0entonces 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 lanzaNoSuchElementException 。

        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 llamadaskip(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 queCharacter.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 llamadanextByte()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á abytevalor, 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 queCharacter.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 entradabyte
        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 queCharacter.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 llamadanextShort()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 entradashort
        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á ashortvalor, 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 queCharacter.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 queCharacter.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 llamadanextInt()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á aintvalor, 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 queCharacter.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 queCharacter.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 llamadanextLong()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 enlongvalor, 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 queCharacter.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 entradalong
        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 enfloatvalor, 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 entradafloat
        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á adoublevalor, 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 entradadouble
        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 queCharacter.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 llamadanextBigInteger()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á aBigIntegervalor, 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 queCharacter.MIN_RADIXo mayor queCharacter.MAX_RADIX, se lanzaIllegalArgumentException 。

        Parámetros
        radixLa base utilizada para interpretar los tokens
        Resultado
        Escanea desde la entradaBigInteger
        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á aBigDecimalvalor, 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 entradaBigDecimal
        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 auseDelimiter() , useLocale(), ouseRadix() 。

        La llamadascanner.reset()El comportamiento de este método en esta forma es exactamente el mismo que el de invocar

        
           scanner.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. Sobreclose()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 suclose()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. Sobreclose()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 suclose()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 。

        yfindWithinHorizon()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