Scanner Clase

Definición

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

[Android.Runtime.Register("java/util/Scanner", DoNotGenerateAcw=true)]
public sealed class Scanner : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ICloseable, Java.Util.IIterator
[<Android.Runtime.Register("java/util/Scanner", DoNotGenerateAcw=true)>]
type Scanner = class
    inherit Object
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IIterator
Herencia
Scanner
Atributos
Implementaciones

Comentarios

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

Scanner Divide su entrada en tokens mediante un patrón delimitador, que de forma predeterminada coincide con el espacio en blanco. A continuación, los tokens resultantes se pueden convertir en valores de diferentes tipos mediante los distintos next métodos.

Por ejemplo, este código permite a un usuario leer un número de System.in: <blockquote>

{@code
                Scanner sc = new Scanner(System.in);
                int i = sc.nextInt();
            }

</Blockquote>

Como otro ejemplo, este código permite long asignar tipos desde entradas de un archivo myNumbers: <blockquote>

{@code
                 Scanner sc = new Scanner(new File("myNumbers"));
                 while (sc.hasNextLong()) {
                     long aLong = sc.nextLong();
                 }
            }

</Blockquote>

El analizador también puede usar delimitadores que no sean espacios en blanco. En este ejemplo se leen varios elementos de una cadena: <blockquote>

{@code
                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();
            }

</Blockquote>

imprime la siguiente salida: <blockquote>

{@code
                1
                2
                red
                blue
            }

</Blockquote>

La misma salida se puede generar con este código, que usa una expresión regular para analizar los cuatro tokens a la vez: <blockquote>

{@code
                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();
            }

</Blockquote>

El delimitador> de espacio en blanco predeterminado usado por un analizador es reconocido por Character#isWhitespace(char) Character.isWhitespace(). El #reset reset() método restablecerá el valor del delimitador del analizador al delimitador de espacio en blanco predeterminado, independientemente de si se cambió anteriormente.

Una operación de examen puede bloquear la espera de entrada.

Los #next métodos y #hasNext y sus métodos complementarios (como #nextInt y #hasNextInt) omiten primero cualquier entrada que coincida con el patrón delimitador y, a continuación, intente devolver el siguiente token. Ambos hasNext() métodos y next() pueden bloquear la espera de una entrada adicional. Si un hasNext() método bloquea no tiene conexión con si se bloqueará o no su método asociado next() . El #tokens método también puede bloquear la espera de entrada.

Los #findInLine findInLine()métodos , #findWithinHorizon findWithinHorizon(), #skip skip()y #findAll findAll() funcionan independientemente del patrón delimitador. Estos métodos intentarán coincidir con el patrón especificado sin tener en cuenta los delimitadores de la entrada y, por tanto, se pueden usar en circunstancias especiales en las que los delimitadores no son pertinentes. Estos métodos pueden bloquear la espera de más entradas.

Cuando un analizador inicia un InputMismatchException, el analizador no pasará el token que provocó la excepción, de modo que se pueda recuperar o omitir a través de algún otro método.

Dependiendo del tipo de patrón de delimitador, se pueden devolver tokens vacíos. Por ejemplo, el patrón "\\s+" no devolverá tokens vacíos, ya que coincide con varias instancias del delimitador. El patrón "\\s" de delimitador podría devolver tokens vacíos, ya que solo pasa un espacio a la vez.

Un escáner puede leer texto de cualquier objeto que implemente la java.lang.Readable interfaz . Si se produce una invocación del método legible java.lang.Readable#read read() subyacente, java.io.IOException el analizador asume que se ha alcanzado el final de la entrada. La más reciente IOException producida por el objeto legible subyacente se puede recuperar a través del #ioException método .

Cuando se cierra , Scanner cerrará su origen de entrada si el origen implementa la java.io.Closeable interfaz .

Un Scanner no es seguro para uso multiproceso sin sincronización externa.

A menos que se mencione lo contrario, si se pasa un null parámetro a cualquier método de , Scanner se producirá una NullPointerException excepción .

Un escáner interpretará de forma predeterminada los números como decimales, a menos que se haya establecido un radix diferente mediante el #useRadix método . El #reset método restablecerá el valor del radix del escáner a 10 independientemente de si se cambió anteriormente.

<h2> "localized-numbers">Localized numbers</h2>

Una instancia de esta clase es capaz de examinar números en los formatos estándar, así como en los formatos de la configuración regional del analizador. La configuración regional inicial de> un analizador es el valor devuelto por el java.util.Locale#getDefault(Locale.Category) Locale.getDefault(Locale.Category.FORMAT) método ; se puede cambiar a través del #useLocale useLocale() método . El #reset método restablecerá el valor de la configuración regional del analizador a la configuración regional inicial, independientemente de si se cambió anteriormente.

Los formatos localizados se definen en términos de los parámetros siguientes, que para una configuración regional determinada se toman del objeto de la configuración regional java.text.DecimalFormat DecimalFormat , df, y su objeto y java.text.DecimalFormatSymbols DecimalFormatSymbols , dfs.

<blockquote><dl><dt>LocalGroupSeparator  <dd>El carácter utilizado para separar miles de grupos, es decir, dfs.java.text.DecimalFormatSymbols#getGroupingSeparator getGroupingSeparator()<dt>LocalDecimalSeparator  <dd>El carácter utilizado para el separador decimal, es decir, dfs.java.text.DecimalFormatSymbols#getDecimalSeparator getDecimalSeparator()<dt>LocalPositivePrefix  <dd>Cadena que aparece antes de un número positivo (puede estar vacío), es decir, df.java.text.DecimalFormat#getPositivePrefix getPositivePrefix()<dt>LocalPositiveSuffix  <dd>Cadena que aparece después de un número positivo (puede estar vacío), es decir, df.java.text.DecimalFormat#getPositiveSuffix getPositiveSuffix()<dt>LocalNegativePrefix  <dd>Cadena que aparece antes de un número negativo (puede estar vacío), es decir, df.java.text.DecimalFormat#getNegativePrefix getNegativePrefix()<dt>LocalNegativeSuffix  <dd>Cadena que aparece después de un número negativo (puede estar vacío), es decir, df.java.text.DecimalFormat#getNegativeSuffix getNegativeSuffix()<dt>LocalNaN  <dd>La cadena que representa not-a-number para los valores de punto flotante, es decir, dfs.java.text.DecimalFormatSymbols#getNaN getNaN()<dt>LocalInfinity  <dd>Cadena que representa infinito para los valores de punto flotante, es decir, dfs.java.text.DecimalFormatSymbols#getInfinity getInfinity()</dl></blockquote>

<h3> "number-syntax">Sintaxis< de número/h3>

Las cadenas que se pueden analizar como números por una instancia de esta clase se especifican en términos de la siguiente gramática de expresiones regulares, donde Rmax es el dígito más alto del radix que se usa (por ejemplo, Rmax es 9 en base 10).

<dl><dt>NonAsciiDigit: <dd>Un carácter no ASCII c para el que java.lang.Character#isDigit Character.isDigit(c) devuelve  Verdad

<dt>Non0Digit: <dd>[1-Rmax] |NonASCIIDigit<dt>Digit: <dd>[0-Rmax] |NonASCIIDigit<dt>GroupedNumeral: <dd>(&nbsp;Non0DigitDigit Digit??<dd>    (&nbsp;LocalGroupSeparatorDigit Digit Digit)+ )<dt>Numeral: <dd>( (Digit+ ) |GroupedNumeral)<dt>"Integer-regex"><i>Integer</i>:<dd>( [-+]? (Numeral) )<dd>|LocalPositivePrefixNumeral LocalPositiveSuffix<dd>|LocalNegativePrefixNumeralLocalNegativeSuffix<dt>DecimalNumeral: <ddNumeraldd>|>Numeral<LocalDecimalSeparatorDigit*<dd>|LocalDecimalSeparatorDigit+<> dtExponent: <dd>( [eE] [+-]?Digit+ )<dt>"Decimal-regex"><i>Decimal</i>:<dd>( [-+]?Exponente? )<decimalnumeraldd>|LocalPositivePrefixDecimalNumeralLocalPositiveSuffixExponent?<dd>|LocalNegativePrefixDecimalNumeralLocalNegativeSuffixExponent?<dt>HexFloat: <dd dt>NonNumber: <dd><[-+]? 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+ ([pP][-+]?[0-9]+)?>NaN |LocalNan| Infinity |LocalInfinity<dt>SignedNonNumber: <dd>( [-+]?NonNumber)<dd>|LocalPositivePrefixNonNumberLocalPositiveSuffix<dd>|LocalNegativePrefixNonNumberLocalNegativeSuffix<dt>"Float-regex"><i>Float</i>: <dd>Decimal|HexFloat|SignedNonNumber</dl>

El espacio en blanco no es significativo en las expresiones regulares anteriores.

Agregado en 1.5.

Documentación de Java para java.util.Scanner.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código Project y que se usan según los términos Creative Commons 2.5 Attribution License.

Constructores

Scanner(File)

Construye un nuevo Scanner objeto que genera valores examinados desde el archivo especificado.

Scanner(File, Charset)

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

Scanner(File, String)

Construye un nuevo Scanner objeto que genera valores examinados desde el archivo especificado.

Scanner(IPath)

Construye un nuevo Scanner objeto que genera valores examinados desde el archivo especificado.

Scanner(IPath, Charset)

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

Scanner(IPath, String)

Construye un nuevo Scanner objeto que genera valores examinados desde el archivo especificado.

Scanner(IReadable)

Construye un nuevo Scanner objeto que genera valores examinados desde el origen especificado.

Scanner(IReadableByteChannel)

Construye un nuevo Scanner objeto que genera valores examinados desde el canal especificado.

Scanner(IReadableByteChannel, Charset)

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

Scanner(IReadableByteChannel, String)

Construye un nuevo Scanner objeto que genera valores examinados desde el canal especificado.

Scanner(Stream)

Construye un nuevo Scanner objeto que genera valores examinados a partir del flujo de entrada especificado.

Scanner(Stream, Charset)

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

Scanner(Stream, String)

Construye un nuevo Scanner objeto que genera valores examinados a partir del flujo de entrada especificado.

Scanner(String)

Construye un nuevo Scanner objeto que genera valores examinados a partir de la cadena especificada.

Propiedades

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
HasNext

Devuelve true si este analizador tiene otro token en su entrada.

HasNextBigDecimal

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un BigDecimal mediante el #nextBigDecimal método .

HasNextBigInteger

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como en BigInteger el radix predeterminado mediante el #nextBigInteger método .

HasNextBoolean

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un valor booleano mediante un patrón sin distinción entre mayúsculas y minúsculas creado a partir de la cadena "true|false".

HasNextByte

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un valor de byte en el radix predeterminado mediante el #nextByte método .

HasNextDouble

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un valor doble mediante el #nextDouble método .

HasNextFloat

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un valor float mediante el #nextFloat método .

HasNextInt

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un valor int en el radix predeterminado mediante el #nextInt método .

HasNextLine

Devuelve true si hay otra línea en la entrada de este analizador.

HasNextLong

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un valor largo en el radix predeterminado mediante el #nextLong método .

HasNextShort

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un valor corto en el radix predeterminado mediante el #nextShort método .

JniIdentityHashCode

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

(Heredado de Object)
JniPeerMembers

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

PeerReference

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

(Heredado de Object)
ThresholdClass

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

(Heredado de Object)
ThresholdType

Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código.

(Heredado de Object)

Métodos

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Close()

Cierra este escáner.

Delimiter()

Devuelve que Pattern se Scanner usa actualmente para buscar coincidencias con delimitadores.

Dispose()

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

(Heredado de Object)
Dispose(Boolean)

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

(Heredado de Object)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
FindInLine(Pattern)

Intenta encontrar la siguiente aparición del patrón especificado ignorando los delimitadores.

FindInLine(String)

Intenta encontrar la siguiente aparición de un patrón construido a partir de la cadena especificada, ignorando los delimitadores.

FindWithinHorizon(Pattern, Int32)

Intenta encontrar la siguiente aparición del patrón especificado.

FindWithinHorizon(String, Int32)

Intenta encontrar la siguiente aparición de un patrón construido a partir de la cadena especificada, ignorando los delimitadores.

GetHashCode()

Devuelve un valor de código hash del objeto.

(Heredado de Object)
InvokeHasNext(Pattern)

Devuelve true si el siguiente token completo coincide con el patrón especificado.

InvokeHasNext(String)

Devuelve true si el siguiente token coincide con el patrón construido a partir de la cadena especificada.

InvokeHasNextBigInteger(Int32)

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como en BigInteger el radix especificado mediante el #nextBigInteger método .

InvokeHasNextByte(Int32)

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un valor de byte en el radix especificado mediante el #nextByte método .

InvokeHasNextInt(Int32)

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un valor int en el radix especificado mediante el #nextInt método .

InvokeHasNextLong(Int32)

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un valor largo en el radix especificado mediante el #nextLong método .

InvokeHasNextShort(Int32)

Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un valor corto en el radix especificado mediante el #nextShort método .

IoException()

Devuelve el IOException último producido por este Scannerobjeto subyacente Readable.

JavaFinalize()

Llamado por el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto.

(Heredado de Object)
Locale()

Devuelve la configuración regional de este analizador.

Match()

Devuelve el resultado de coincidencia de la última operación de examen realizada por este analizador.

Next()

Busca y devuelve el siguiente token completo de este analizador.

Next(Pattern)

Devuelve el siguiente token si coincide con el patrón especificado.

Next(String)

Devuelve el siguiente token si coincide con el patrón construido a partir de la cadena especificada.

NextBigDecimal()

Examina el siguiente token de la entrada como .java.math.BigDecimal BigDecimal

NextBigInteger()

Examina el siguiente token de la entrada como .java.math.BigInteger BigInteger

NextBigInteger(Int32)

Examina el siguiente token de la entrada como .java.math.BigInteger BigInteger

NextBoolean()

Examina el siguiente token de la entrada en un valor booleano y devuelve ese valor.

NextByte()

Examina el siguiente token de la entrada como .byte

NextByte(Int32)

Examina el siguiente token de la entrada como .byte

NextDouble()

Examina el siguiente token de la entrada como .double

NextFloat()

Examina el siguiente token de la entrada como .float

NextInt()

Examina el siguiente token de la entrada como .int

NextInt(Int32)

Examina el siguiente token de la entrada como .int

NextLine()

Avanza este escáner más allá de la línea actual y devuelve la entrada que se omitió.

NextLong()

Examina el siguiente token de la entrada como .long

NextLong(Int32)

Examina el siguiente token de la entrada como .long

NextShort()

Examina el siguiente token de la entrada como .short

NextShort(Int32)

Examina el siguiente token de la entrada como .short

Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
Radix()

Devuelve el radix predeterminado del analizador.

Remove()

Esta implementación de no admite la operación de eliminación de Iterator.

Reset()

Restablece este escáner.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
Skip(Pattern)

Omite la entrada que coincide con el patrón especificado y omite los delimitadores.

Skip(String)

Omite la entrada que coincide con un patrón construido a partir de la cadena especificada.

ToArray<T>()

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

(Heredado de Object)
ToString()

Devuelve una representación de cadena del objeto.

(Heredado de Object)
UnregisterFromRuntime()

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

(Heredado de Object)
UseDelimiter(Pattern)

Establece el patrón delimitador de este analizador en el patrón especificado.

UseDelimiter(String)

Establece el patrón delimitador de este analizador en un patrón construido a partir del especificado String.

UseLocale(Locale)

Establece la configuración regional de este analizador en la configuración regional especificada.

UseRadix(Int32)

Establece el radix predeterminado de este analizador en el radix especificado.

Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em> o <em>interrumpido</em>.<><

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

IIterator.Next()

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

IJavaPeerable.Disposed()

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

(Heredado de Object)
IJavaPeerable.Finalized()

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

(Heredado de Object)

Métodos de extensión

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

GetJniTypeName(IJavaPeerable)

Un escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.

Se aplica a