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í.
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
- 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>(
Non0DigitDigit Digit?
?
<dd> (
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(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(IPath) |
Construye un nuevo |
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(IReadable) |
Construye un nuevo |
Scanner(IReadableByteChannel) |
Construye un nuevo |
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(Stream) |
Construye un nuevo |
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(String) |
Construye un nuevo |
Propiedades
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 analizador se puede interpretar como en |
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 |
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 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 |
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 |
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 |
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 |
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 el |
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 . |
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 del analizador. |
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) |
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 |
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. |