Condividi tramite


Scanner Classe

Definizione

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à
Scanner
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 InputMismatchExceptionoggetto , 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, dfe dall'oggetto e dall'oggetto .java.text.DecimalFormatSymbols DecimalFormatSymbolsjava.text.DecimalFormat DecimalFormatdfs

<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<(&nbsp;>: <<dd[1->Non0Digit<<??Digit Digit dd>     (&nbsp;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 oggetto che produce valori analizzati dal file specificato.

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 oggetto che produce valori analizzati dal file specificato.

Scanner(IPath)

Costruisce un nuovo Scanner oggetto che produce valori analizzati dal file specificato.

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 oggetto che produce valori analizzati dal file specificato.

Scanner(IReadable)

Costruisce un nuovo oggetto Scanner che produce valori analizzati dall'origine specificata.

Scanner(IReadableByteChannel)

Costruisce un nuovo oggetto Scanner che produce valori analizzati dal canale specificato.

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 che produce valori analizzati dal canale specificato.

Scanner(Stream)

Costruisce un nuovo Scanner oggetto che produce valori analizzati dal flusso di input specificato.

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 oggetto che produce valori analizzati dal flusso di input specificato.

Scanner(String)

Costruisce un nuovo oggetto Scanner che produce valori analizzati dalla stringa specificata.

Proprietà

Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
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 BigDecimal#nextBigDecimal .

HasNextBigInteger

Restituisce true se il token successivo nell'input di questo scanner può essere interpretato come valore BigInteger nel radix predefinito usando il #nextBigInteger metodo .

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 #nextByte metodo .

HasNextDouble

Restituisce true se il token successivo nell'input dello scanner può essere interpretato come valore doppio usando il #nextDouble metodo .

HasNextFloat

Restituisce true se il token successivo nell'input dello scanner può essere interpretato come valore float usando il #nextFloat metodo .

HasNextInt

Restituisce true se il token successivo nell'input di questo scanner può essere interpretato come valore int nel radix predefinito usando il #nextInt metodo .

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 #nextLong metodo .

HasNextShort

Restituisce true se il token successivo nell'input di questo scanner può essere interpretato come valore breve nel radix predefinito usando il #nextShort metodo .

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 PatternScanner attualmente usato per associare i delimitatori.

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 BigInteger nel radix specificato usando il #nextBigInteger metodo .

InvokeHasNextByte(Int32)

Restituisce true se il token successivo nell'input dello scanner può essere interpretato come valore byte nel radix specificato usando il #nextByte metodo .

InvokeHasNextInt(Int32)

Restituisce true se il token successivo nell'input dello scanner può essere interpretato come valore int nel radix specificato usando il #nextInt metodo .

InvokeHasNextLong(Int32)

Restituisce true se il token successivo nell'input dello scanner può essere interpretato come valore lungo nel radix specificato usando il #nextLong metodo .

InvokeHasNextShort(Int32)

Restituisce true se il token successivo nell'input dello scanner può essere interpretato come valore breve nel radix specificato usando il #nextShort metodo .

IoException()

Restituisce l'ultimo generato dall'oggetto IOExceptionScannersottostante Readable.

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 java.math.BigDecimal BigDecimal.

NextBigInteger()

Analizza il token successivo dell'input come java.math.BigInteger BigInteger.

NextBigInteger(Int32)

Analizza il token successivo dell'input come java.math.BigInteger BigInteger.

NextBoolean()

Analizza il token successivo dell'input in un valore booleano e restituisce tale valore.

NextByte()

Analizza il token successivo dell'input come byte.

NextByte(Int32)

Analizza il token successivo dell'input come byte.

NextDouble()

Analizza il token successivo dell'input come double.

NextFloat()

Analizza il token successivo dell'input come float.

NextInt()

Analizza il token successivo dell'input come int.

NextInt(Int32)

Analizza il token successivo dell'input come int.

NextLine()

Avanza questo scanner oltre la riga corrente e restituisce l'input ignorato.

NextLong()

Analizza il token successivo dell'input come long.

NextLong(Int32)

Analizza il token successivo dell'input come long.

NextShort()

Analizza il token successivo dell'input come short.

NextShort(Int32)

Analizza il token successivo dell'input come short.

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

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

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.

Si applica a