Scanner Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari.
[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
- Ereditarietà
- Attributi
- Implementazioni
Commenti
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari.
Un Scanner
oggetto interrompe l'input in token usando un modello delimitatore, che per impostazione predefinita corrisponde agli spazi vuoti. I token risultanti possono quindi essere convertiti in valori di tipi diversi usando i vari next
metodi.
Ad esempio, questo codice consente a un utente di leggere un numero da System.in
: <blockquote>
{@code
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
}
</Blockquote>
Come un altro esempio, questo codice consente long
di assegnare tipi da voci in un file myNumbers
: <blockquote>
{@code
Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNextLong()) {
long aLong = sc.nextLong();
}
}
</Blockquote>
Lo scanner può anche usare delimitatori diversi da spazi vuoti. In questo esempio vengono letti diversi elementi in una stringa: <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>
stampa l'output seguente: <blockquote>
{@code
1
2
red
blue
}
</Blockquote>
Lo stesso output può essere generato con questo codice, che usa un'espressione regolare per analizzare tutti e quattro i token contemporaneamente: <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>
Il delimitatore di spazi predefinito "delimitatore> di spazi predefinito" usato da uno scanner è riconosciuto da Character#isWhitespace(char) Character.isWhitespace()
. Il #reset reset()
metodo reimposta il valore del delimitatore dello scanner nel delimitatore di spazi predefinito indipendentemente dal fatto che sia stato modificato in precedenza.
Un'operazione di analisi può bloccare l'attesa dell'input.
I metodi e e i #next
relativi metodi complementari (ad esempio #nextInt
e #hasNext
#hasNextInt
) ignorano prima qualsiasi input corrispondente al modello delimitatore e quindi tenta di restituire il token successivo. Entrambi hasNext()
i metodi e next()
possono bloccare l'attesa di ulteriori input. Se un hasNext()
blocco di metodi non ha alcuna connessione a se il metodo associato next()
blocca o meno. Il #tokens
metodo può anche bloccare l'attesa dell'input.
I #findInLine findInLine()
metodi , , #findWithinHorizon findWithinHorizon()
#skip skip()
e #findAll findAll()
operano in modo indipendente dal modello delimitatore. Questi metodi tenteranno di corrispondere al modello specificato senza considerare i delimitatori nell'input e quindi possono essere usati in circostanze speciali in cui i delimitatori non sono pertinenti. Questi metodi possono bloccare l'attesa di più input.
Quando uno scanner genera un InputMismatchException
oggetto , lo scanner non passerà il token che ha causato l'eccezione, in modo che possa essere recuperato o ignorato tramite un altro metodo.
A seconda del tipo di modello di delimitazione, i token vuoti possono essere restituiti. Ad esempio, il modello "\\s+"
non restituirà token vuoti poiché corrisponde a più istanze del delimitatore. Il modello "\\s"
di delimitazione potrebbe restituire token vuoti poiché passa solo uno spazio alla volta.
Uno scanner può leggere il testo da qualsiasi oggetto che implementa l'interfaccia java.lang.Readable
. Se viene generata java.io.IOException
una chiamata del metodo leggibile sottostante, lo scanner presuppone che la fine dell'input java.lang.Readable#read read()
sia stata raggiunta. L'oggetto generato più recente IOException
dal leggibile sottostante può essere recuperato tramite il #ioException
metodo .
Quando un oggetto Scanner
viene chiuso, chiuderà l'origine di input se l'origine implementa l'interfaccia java.io.Closeable
.
Un Scanner
non è sicuro per l'uso multithreading senza sincronizzazione esterna.
A meno che diversamente indicato, il passaggio di un null
parametro in qualsiasi metodo di un Scanner
genererà un NullPointerException
oggetto da generare.
Per impostazione predefinita, uno scanner interpreterà i numeri come decimali a meno che non sia stato impostato un radix diverso usando il #useRadix
metodo . Il #reset
metodo reimposta il valore del radix 10
dello scanner a prescindere dal fatto che sia stato modificato in precedenza.
<h2> "numeri localizzati">Numeri< localizzati/h2>
Un'istanza di questa classe è in grado di analizzare i numeri nei formati standard e nei formati delle impostazioni locali dello scanner. Le impostazioni locali> iniziali di uno scanner sono il valore restituito dal metodo. Può essere modificato tramite il java.util.Locale#getDefault(Locale.Category) Locale.getDefault(Locale.Category.FORMAT)
#useLocale useLocale()
metodo . Il #reset
metodo reimposta il valore delle impostazioni locali dello scanner nelle impostazioni locali iniziali, indipendentemente dal fatto che sia stato modificato in precedenza.
I formati localizzati sono definiti in termini dei parametri seguenti, che per una determinata impostazioni locali vengono acquisiti dall'oggetto delle impostazioni locali, df
e dall'oggetto e dall'oggetto .java.text.DecimalFormatSymbols DecimalFormatSymbols
java.text.DecimalFormat DecimalFormat
dfs
<blockquote dl><dt> LocalGroupSeparator>< <dd>Il carattere usato per separare migliaia di gruppi, ad esempio dfs.
java.text.DecimalFormatSymbols#getGroupingSeparator getGroupingSeparator()
<dt>LocalDecimalSeparator <dd>Carattere utilizzato per il punto decimale, ad esempio dfs.
java.text.DecimalFormatSymbols#getDecimalSeparator getDecimalSeparator()
<dt>LocalPositivePrefix <dd>La stringa visualizzata prima di un numero positivo (può essere vuota), ad esempio df.
java.text.DecimalFormat#getPositivePrefix getPositivePrefix()
<dt>LocalPositiveSuffix <dd>Stringa visualizzata dopo un numero positivo (può essere vuoto), ad esempio df.
java.text.DecimalFormat#getPositiveSuffix getPositiveSuffix()
<dt>LocalNegativePrefix <dd>Stringa visualizzata prima di un numero negativo (può essere vuoto), ad esempio df.
java.text.DecimalFormat#getNegativePrefix getNegativePrefix()
<dt>LocalNegativeSuffix <dd>Stringa visualizzata dopo un numero negativo (può essere vuoto), ad esempio df.
java.text.DecimalFormat#getNegativeSuffix getNegativeSuffix()
<dt>LocalNaN <dd>Stringa che rappresenta un numero diverso per i valori a virgola mobile, ad esempio dfs.
java.text.DecimalFormatSymbols#getNaN getNaN()
<dt>LocalInfinity <dd>Stringa che rappresenta l'infinito per i valori a virgola mobile, ad esempio dfs.
java.text.DecimalFormatSymbols#getInfinity getInfinity()
</dl></blockquote>
<h3 "number-sintassi">Sintassi< numero/h3>>
Le stringhe che possono essere analizzate come numeri da un'istanza di questa classe vengono specificate in termini della grammatica di espressione regolare seguente, dove Rmax è la cifra più alta nel radix usato (ad esempio, Rmax è 9 in base 10).
<dl><dt>NonAsciiDigit: <dd>A carattere non ASCII c per cui java.lang.Character#isDigit Character.isDigit
(c)
restituisce Vero
<dt>Non0Digit: ddRmax] |
NonASCIIDigit dt Digit:dd>[0-
Rmax] |
NonASCIIDigit<dt>>GroupedNumeral<(
>: <<dd[1-
>Non0Digit<<?
?
Digit Digit dd> (
LocalGroupSeparatorDigit)+ )
<dtNumeral: <ddDigit+ ) |
GroupedNumeral)
<dt>>"Integer-regex><"i Integer</i>>:<dd>( (
( [-+]? (
>Numeraldd>|
LocalPositivePrefixNumeral<) )
LocalPositiveSuffix<>|
ddLocalNegativePrefixNumeralLocalNegativeSuffix<dtDecimalNumeral: ddNumeral<dd>|
NumeralLocalDecimalSeparator Digit dd>|
LocalDecimalSeparator+
<*
<Digit dtExponent: <<dd>( [eE] [+-]?
> Digit><+ )
dt>>"Decimal-regex"><i Decimal</i>>:<dd>( [-+]?
DecimalNumeralExponent? )
<dd>|
LocalPositivePrefixDecimalNumeralLocalPositiveSuffixExponent?
<ddLocalNegativePrefixDecimalNumeralLocalNegativeSuffixExponent?
<dtHexFloat: dd dd|
>dt>>NonNumber:><<NaN |
dd[-+]? 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+ ([pP][-+]?[0-9]+)?
><LocalNan | Infinity |
LocalInfinity<dtSignedNonNumber: ddNonNumber)
<dd>|
LocalPositivePrefixNonNumberLocalPositiveSuffix<|
>dd( [-+]?
>LocalNegativePrefix NonNumberLocalNegativeSuffix<dt>>"Float-regex"><i Float</i>>: <<dd>Decimal|
HexFloat|
SignedNonNumber</dl>
Lo spazio vuoto non è significativo nelle espressioni regolari precedenti.
Aggiunto nella versione 1.5.
Documentazione Java per java.util.Scanner
.
Le parti di questa pagina sono modifiche in base al lavoro creato e condiviso dal Android Open Source e usato in base ai termini descritti nella .
Costruttori
Scanner(File) |
Costruisce un nuovo |
Scanner(File, Charset) |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. |
Scanner(File, String) |
Costruisce un nuovo |
Scanner(IPath) |
Costruisce un nuovo |
Scanner(IPath, Charset) |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. |
Scanner(IPath, String) |
Costruisce un nuovo |
Scanner(IReadable) |
Costruisce un nuovo oggetto |
Scanner(IReadableByteChannel) |
Costruisce un nuovo oggetto |
Scanner(IReadableByteChannel, Charset) |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. |
Scanner(IReadableByteChannel, String) |
Costruisce un nuovo oggetto |
Scanner(Stream) |
Costruisce un nuovo |
Scanner(Stream, Charset) |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. |
Scanner(Stream, String) |
Costruisce un nuovo |
Scanner(String) |
Costruisce un nuovo oggetto |
Proprietà
Class |
Restituisce la classe di runtime di questo |
Handle |
Handle all'istanza di Android sottostante. (Ereditato da Object) |
HasNext |
Restituisce true se questo scanner ha un altro token nell'input. |
HasNextBigDecimal |
Restituisce true se il token successivo nell'input di questo scanner può essere interpretato come metodo |
HasNextBigInteger |
Restituisce true se il token successivo nell'input di questo scanner può essere interpretato come valore |
HasNextBoolean |
Restituisce true se il token successivo nell'input dello scanner può essere interpretato come valore booleano usando un modello senza distinzione tra maiuscole e minuscole creato dalla stringa "true|false". |
HasNextByte |
Restituisce true se il token successivo nell'input di questo scanner può essere interpretato come valore byte nel radix predefinito usando il |
HasNextDouble |
Restituisce true se il token successivo nell'input dello scanner può essere interpretato come valore doppio usando il |
HasNextFloat |
Restituisce true se il token successivo nell'input dello scanner può essere interpretato come valore float usando il |
HasNextInt |
Restituisce true se il token successivo nell'input di questo scanner può essere interpretato come valore int nel radix predefinito usando il |
HasNextLine |
Restituisce true se è presente un'altra riga nell'input di questo scanner. |
HasNextLong |
Restituisce true se il token successivo nell'input di questo scanner può essere interpretato come valore lungo nel radix predefinito usando il |
HasNextShort |
Restituisce true se il token successivo nell'input di questo scanner può essere interpretato come valore breve nel radix predefinito usando il |
JniIdentityHashCode |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. (Ereditato da Object) |
JniPeerMembers |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. |
PeerReference |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. (Ereditato da Object) |
ThresholdClass |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. (Ereditato da Object) |
ThresholdType |
Questa API supporta l'infrastruttura Mono per Android e non deve essere usata direttamente dal codice. (Ereditato da Object) |
Metodi
Clone() |
Crea e restituisce una copia di questo oggetto. (Ereditato da Object) |
Close() |
Chiude questo scanner. |
Delimiter() |
Restituisce l'oggetto |
Dispose() |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. (Ereditato da Object) |
Dispose(Boolean) |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. (Ereditato da Object) |
Equals(Object) |
Indica se un altro oggetto è "uguale a" questo. (Ereditato da Object) |
FindInLine(Pattern) |
Tenta di trovare la successiva occorrenza del modello specificato ignorando i delimitatori. |
FindInLine(String) |
Tenta di trovare la successiva occorrenza di un modello costruito dalla stringa specificata, ignorando i delimitatori. |
FindWithinHorizon(Pattern, Int32) |
Tenta di trovare l'occorrenza successiva del modello specificato. |
FindWithinHorizon(String, Int32) |
Tenta di trovare la successiva occorrenza di un modello costruito dalla stringa specificata, ignorando i delimitatori. |
GetHashCode() |
Restituisce un valore del codice hash per l'oggetto. (Ereditato da Object) |
InvokeHasNext(Pattern) |
Restituisce true se il token completo successivo corrisponde al modello specificato. |
InvokeHasNext(String) |
Restituisce true se il token successivo corrisponde al modello costruito dalla stringa specificata. |
InvokeHasNextBigInteger(Int32) |
Restituisce true se il token successivo nell'input dello scanner può essere interpretato come oggetto |
InvokeHasNextByte(Int32) |
Restituisce true se il token successivo nell'input dello scanner può essere interpretato come valore byte nel radix specificato usando il |
InvokeHasNextInt(Int32) |
Restituisce true se il token successivo nell'input dello scanner può essere interpretato come valore int nel radix specificato usando il |
InvokeHasNextLong(Int32) |
Restituisce true se il token successivo nell'input dello scanner può essere interpretato come valore lungo nel radix specificato usando il |
InvokeHasNextShort(Int32) |
Restituisce true se il token successivo nell'input dello scanner può essere interpretato come valore breve nel radix specificato usando il |
IoException() |
Restituisce l'ultimo generato dall'oggetto |
JavaFinalize() |
Chiamato dal Garbage Collector in un oggetto quando Garbage Collection determina che non sono presenti più riferimenti all'oggetto. (Ereditato da Object) |
Locale() |
Restituisce le impostazioni locali dello scanner. |
Match() |
Restituisce il risultato della corrispondenza dell'ultima operazione di analisi eseguita da questo scanner. |
Next() |
Trova e restituisce il token completo successivo da questo scanner. |
Next(Pattern) |
Restituisce il token successivo se corrisponde al modello specificato. |
Next(String) |
Restituisce il token successivo se corrisponde al modello costruito dalla stringa specificata. |
NextBigDecimal() |
Analizza il token successivo dell'input come |
NextBigInteger() |
Analizza il token successivo dell'input come |
NextBigInteger(Int32) |
Analizza il token successivo dell'input come |
NextBoolean() |
Analizza il token successivo dell'input in un valore booleano e restituisce tale valore. |
NextByte() |
Analizza il token successivo dell'input come |
NextByte(Int32) |
Analizza il token successivo dell'input come |
NextDouble() |
Analizza il token successivo dell'input come |
NextFloat() |
Analizza il token successivo dell'input come |
NextInt() |
Analizza il token successivo dell'input come |
NextInt(Int32) |
Analizza il token successivo dell'input come |
NextLine() |
Avanza questo scanner oltre la riga corrente e restituisce l'input ignorato. |
NextLong() |
Analizza il token successivo dell'input come |
NextLong(Int32) |
Analizza il token successivo dell'input come |
NextShort() |
Analizza il token successivo dell'input come |
NextShort(Int32) |
Analizza il token successivo dell'input come |
Notify() |
Riattiva un singolo thread in attesa del monitoraggio dell'oggetto. (Ereditato da Object) |
NotifyAll() |
Riattiva tutti i thread in attesa del monitoraggio dell'oggetto. (Ereditato da Object) |
Radix() |
Restituisce il radix predefinito dello scanner. |
Remove() |
L'operazione di rimozione non è supportata da questa implementazione di |
Reset() |
Reimposta questo scanner. |
SetHandle(IntPtr, JniHandleOwnership) |
Imposta la proprietà Handle. (Ereditato da Object) |
Skip(Pattern) |
Ignora l'input corrispondente al modello specificato, ignorando i delimitatori. |
Skip(String) |
Ignora l'input corrispondente a un modello costruito dalla stringa specificata. |
ToArray<T>() |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. (Ereditato da Object) |
ToString() |
Restituisce una rappresentazione in formato stringa dell'oggetto. (Ereditato da Object) |
UnregisterFromRuntime() |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. (Ereditato da Object) |
UseDelimiter(Pattern) |
Imposta il modello di delimitazione dello scanner sul modello specificato. |
UseDelimiter(String) |
Imposta il modello di delimitazione dello scanner su un modello costruito dall'oggetto specificato |
UseLocale(Locale) |
Imposta le impostazioni locali dello scanner sulle impostazioni locali specificate. |
UseRadix(Int32) |
Imposta il radix predefinito dello scanner sul radix specificato. |
Wait() |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere eseguendo>una notifica</em o <em interrotto</>em>>.< (Ereditato da Object) |
Wait(Int64) |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale. (Ereditato da Object) |
Wait(Int64, Int32) |
Causa l'attesa del thread corrente fino a quando non viene svegliata, in genere <>eseguendo una notifica</em o <em interrotto/>>em>o fino a quando non è trascorsa< una determinata quantità di tempo reale. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IIterator.Next() |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. |
IJavaPeerable.Disposed() |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. (Ereditato da Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. (Ereditato da Object) |
IJavaPeerable.Finalized() |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. (Ereditato da Object) |
IJavaPeerable.JniManagedPeerState |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. (Ereditato da Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. (Ereditato da Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. (Ereditato da Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. (Ereditato da Object) |
Metodi di estensione
JavaCast<TResult>(IJavaObject) |
Esegue una conversione dei tipi controllati dal runtime Android. |
JavaCast<TResult>(IJavaObject) |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. |
GetJniTypeName(IJavaPeerable) |
Uno scanner di testo semplice che può analizzare i tipi primitivi e le stringhe usando espressioni regolari. |