Scanner Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.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
- Atributos
- Implementaciones
Comentarios
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares.
Divide Scanner 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 espacios 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 espacios 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 y #hasNext 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() bloque de métodos no tiene conexión con si su método asociado next() se bloqueará o no. 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 entrada.
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 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" 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 java.lang.Readable#read read() método legible 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.
No Scanner es seguro para el 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 un Scanner , se producirá una NullPointerException excepción .
Un analizador 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 analizador a 10 independientemente de si se cambió anteriormente.
<h2> "localized-numbers">Localized numbers</h2>
Una instancia de esta clase es capaz de escanear 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 esa java.text.DecimalFormat DecimalFormat configuración regional, df, y su objeto y java.text.DecimalFormatSymbols DecimalFormatSymbols , dfs.
<blockquote><dl><dt>LocalGroupSeparator <dd>El carácter usado 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>Cadena que representa not-a-number para 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">Number syntax</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 la base 10).
<dl><dt>NonAsciiDigit: <dd>A carácter no ASCII c para el que java.lang.Character#isDigit Character.isDigit(c) devuelve true
<dt>Non0Digit: <dd>[1-Rmax] |NonASCIIDigit<dt>Digit: <dd>[0-Rmax] |NonASCIIDigit<dt>GroupedNumeral: <dd>( Non0DigitDigit Digit??<dd> ( LocalGroupSeparatorDigit)+ )<Digit Dt>Numeral: <dd>( (Digit+ ) |GroupedNumeral)<dt>"Integer-regex"><i>Integer</i>:<dd>( [-+]? (Numeral) )<dd>|LocalPositivePrefixNumeralLocalPositiveSuffix<dd>|LocalNegativePrefixNumeralLocalNegativeSuffix<dt>DecimalNumeral: <dd>Numeral<dd>|NumeralLocalDecimalSeparatorDigit*<dd>|LocalDecimalSeparatorDigit+<dt>Exponent: <dd>( [eE] [+-]?Digit+ )<dt>"Decimal-regex"><i Decimal>/i<>:<dd>( [-+]?Exponente? )<dd>|LocalPositivePrefixDecimalNumeralLocalPositiveSuffixExponent?<dd>|LocalNegativePrefixDecimalNumeralLocalNegativeSuffixExponent?<dt>HexFloat: <dd>[-+]? 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+ ([pP][-+]?[0-9]+)?<dt>NonNumber: <dd>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.
Java documentación 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 abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.
Constructores
| Nombre | Description |
|---|---|
| Scanner(File, Charset) |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. |
| Scanner(File, String) |
Construye un nuevo |
| Scanner(File) |
Construye un nuevo |
| Scanner(IPath, Charset) |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. |
| Scanner(IPath, String) |
Construye un nuevo |
| Scanner(IPath) |
Construye un nuevo |
| Scanner(IReadable) |
Construye un nuevo |
| Scanner(IReadableByteChannel, Charset) |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. |
| Scanner(IReadableByteChannel, String) |
Construye un nuevo |
| Scanner(IReadableByteChannel) |
Construye un nuevo |
| Scanner(Stream, Charset) |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. |
| Scanner(Stream, String) |
Construye un nuevo |
| Scanner(Stream) |
Construye un nuevo |
| Scanner(String) |
Construye un nuevo |
Propiedades
| Nombre | Description |
|---|---|
| Class |
Devuelve la clase en tiempo de ejecución de este |
| 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 |
| HasNextBigInteger |
Devuelve true si el siguiente token de la entrada de este escáner se puede interpretar como en |
| HasNextBoolean |
Devuelve true si el siguiente token de la entrada del analizador se puede interpretar como un valor booleano mediante un patrón que no distingue mayúsculas de 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 |
| HasNextDouble |
Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un valor doble mediante el |
| HasNextFloat |
Devuelve true si el siguiente token de la entrada de este analizador se puede interpretar como un valor float mediante el |
| 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 |
| HasNextLine |
Devuelve true si hay otra línea en la entrada de este escáner. |
| 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 |
| 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 |
| JniIdentityHashCode |
Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| JniManagedPeerState |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. (Heredado de JavaObject) |
| JniPeerMembers |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (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
| Nombre | Description |
|---|---|
| Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
| Close() |
Cierra este escáner. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. (Heredado de JavaObject) |
| Delimiter() |
Devuelve el |
| Dispose() |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| Dispose(Boolean) |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| DisposeUnlessReferenced() |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. (Heredado de JavaObject) |
| Equals(Object) |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. (Heredado de JavaObject) |
| 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 que omite 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 para el 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 |
| 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 |
| 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 |
| 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 |
| 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 |
| IoException() |
Devuelve la |
| JavaFinalize() |
Lo llama 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 coincidente 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 . |
| NextBigInteger() |
Examina el siguiente token de la entrada como . |
| NextBigInteger(Int32) |
Examina el siguiente token de la entrada como . |
| 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 . |
| NextByte(Int32) |
Examina el siguiente token de la entrada como . |
| NextDouble() |
Examina el siguiente token de la entrada como . |
| NextFloat() |
Examina el siguiente token de la entrada como . |
| NextInt() |
Examina el siguiente token de la entrada como . |
| NextInt(Int32) |
Examina el siguiente token de la entrada como . |
| 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 . |
| NextLong(Int32) |
Examina el siguiente token de la entrada como . |
| NextShort() |
Examina el siguiente token de la entrada como . |
| NextShort(Int32) |
Examina el siguiente token de la entrada como . |
| 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 de este escáner. |
| Remove() |
Esta implementación de no admite la operación de eliminación de |
| Reset() |
Restablece este escáner. |
| SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. (Heredado de JavaObject) |
| 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>() |
Crea una matriz administrada a partir de este contenedor de matriz Java. (Heredado de Object) |
| ToString() |
Devuelve una representación de cadena del objeto . (Heredado de Object) |
| UnregisterFromRuntime() |
Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad. (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 |
| 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, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
| Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>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
| Nombre | Description |
|---|---|
| IIterator.Next() |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. |
| IJavaPeerable.Disposed() |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. (Heredado de JavaObject) |
| IJavaPeerable.Finalized() |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. (Heredado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. (Heredado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. (Heredado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. (Heredado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. (Heredado de JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
Escáner de texto simple que puede analizar tipos primitivos y cadenas mediante expresiones regulares. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |