Scanner Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières.
[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
- Héritage
- Attributs
- Implémente
Remarques
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières.
Un Scanner saute son entrée en jetons à l’aide d’un modèle de délimiteur, qui correspond par défaut à l’espace blanc. Les jetons résultants peuvent ensuite être convertis en valeurs de différents types à l’aide des différentes next méthodes.
Par exemple, ce code permet à un utilisateur de lire un nombre à partir de System.in: <blockquote>
{@code
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
}
</blockquote>
Comme autre exemple, ce code permet long aux types d’être attribués à partir d’entrées dans un fichier myNumbers: <blockquote>
{@code
Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNextLong()) {
long aLong = sc.nextLong();
}
}
</blockquote>
Le scanneur peut également utiliser des délimiteurs autres que les espaces blancs. Cet exemple lit plusieurs éléments d’une chaîne : <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 sortie suivante : <blockquote>
{@code
1
2
red
blue
}
</blockquote>
La même sortie peut être générée avec ce code, qui utilise une expression régulière pour analyser les quatre jetons à la fois : <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>
Le délimiteur> d’espace blanc par défaut utilisé par un scanneur est reconnu par Character#isWhitespace(char) Character.isWhitespace(). La #reset reset() méthode réinitialise la valeur du délimiteur du scanneur au délimiteur d’espace blanc par défaut, qu’il ait été précédemment modifié.
Une opération d’analyse peut bloquer l’attente de l’entrée.
Les #next méthodes et #hasNext les méthodes associées (telles que #nextInt et #hasNextInt) ignorent d’abord toutes les entrées qui correspondent au modèle de délimiteur, puis tentent de retourner le jeton suivant. Les deux hasNext() méthodes next() peuvent bloquer l’attente d’une entrée supplémentaire. Indique si un hasNext() bloc de méthode n’a pas de connexion pour déterminer si sa méthode associée next() bloque ou non. La #tokens méthode peut également bloquer l’attente d’entrée.
Les #findInLine findInLine()méthodes , et #findWithinHorizon findWithinHorizon()#skip skip() les méthodes #findAll findAll()fonctionnent indépendamment du modèle délimiteur. Ces méthodes tenteront de faire correspondre le modèle spécifié sans tenir compte des délimiteurs dans l’entrée et peuvent donc être utilisées dans des circonstances spéciales où les délimiteurs ne sont pas pertinents. Ces méthodes peuvent bloquer l’attente d’une entrée supplémentaire.
Lorsqu’un scanneur lève un InputMismatchExceptionscanneur, le scanneur ne transmet pas le jeton qui a provoqué l’exception, afin qu’il puisse être récupéré ou ignoré via une autre méthode.
Selon le type de modèle de limitation, les jetons vides peuvent être retournés. Par exemple, le modèle "\\s+" ne retourne aucun jeton vide, car il correspond à plusieurs instances du délimiteur. Le modèle "\\s" de limitation peut retourner des jetons vides, car il ne passe qu’un seul espace à la fois.
Un scanneur peut lire du texte à partir de n’importe quel objet qui implémente l’interface java.lang.Readable . Si un appel de la méthode lisible java.lang.Readable#read read() sous-jacente lève un java.io.IOException scanneur suppose que la fin de l’entrée a été atteinte. La plus récente IOException levée par l’élément lisible sous-jacent peut être récupérée via la #ioException méthode.
Lorsqu’un Scanner est fermé, il ferme sa source d’entrée si la source implémente l’interface java.io.Closeable .
L’utilisation Scanner multithread n’est pas sécurisée sans synchronisation externe.
Sauf indication contraire, le passage d’un null paramètre à n’importe quelle méthode d’un Scanner entraîne la levée d’un NullPointerException paramètre.
Un scanneur interprète par défaut les nombres comme décimaux, sauf si un rayon différent a été défini à l’aide de la #useRadix méthode. La #reset méthode réinitialise la valeur du radix 10 du scanneur, qu’elle ait été modifiée ou non.
<h2> « nombres localisés>"<Nombres localisés/h2>
Une instance de cette classe est capable d’analyser des nombres dans les formats standard, ainsi que dans les formats des paramètres régionaux du scanneur. Les paramètres régionaux initiaux « initial-locale »> d’un scanneur sont la valeur retournée par la java.util.Locale#getDefault(Locale.Category) Locale.getDefault(Locale.Category.FORMAT) méthode ; il peut être modifié par le biais de la #useLocale useLocale() méthode. La #reset méthode réinitialise la valeur des paramètres régionaux du scanneur aux paramètres régionaux initiaux, qu’elle ait été modifiée précédemment.
Les formats localisés sont définis en termes de paramètres suivants, qui pour un paramètre régional particulier sont extraits de l’objet de ces java.text.DecimalFormat DecimalFormat paramètres régionaux, dfet de son et java.text.DecimalFormatSymbols DecimalFormatSymbols de son objet. dfs
<blockquote><dl><dt>LocalGroupSeparator ; ;<dd>Le caractère utilisé pour séparer des milliers de groupes, c’est-à-dire, ;dfs.java.text.DecimalFormatSymbols#getGroupingSeparator getGroupingSeparator()<dt>LocalDecimalSeparator ; ;<dd>Le caractère utilisé pour la virgule décimale, c’est-à-dire, ;dfs.java.text.DecimalFormatSymbols#getDecimalSeparator getDecimalSeparator()<dt>LocalPositivePrefix ; ;<dd>La chaîne qui apparaît avant un nombre positif (peut être vide), c’est-à-dire, ;df.java.text.DecimalFormat#getPositivePrefix getPositivePrefix()<dt>LocalPositiveSuffix ; ;<dd>La chaîne qui apparaît après un nombre positif (peut être vide), c’est-à-dire, ;df.java.text.DecimalFormat#getPositiveSuffix getPositiveSuffix()<dt>LocalNegativePrefix ; ;<dd>La chaîne qui apparaît avant un nombre négatif (peut être vide), c’est-à-dire, ;df.java.text.DecimalFormat#getNegativePrefix getNegativePrefix()<dt>LocalNegativeSuffix ; ;<dd>La chaîne qui apparaît après un nombre négatif (peut être vide), c’est-à-dire, ;df.java.text.DecimalFormat#getNegativeSuffix getNegativeSuffix()<dt>LocalNaN ; ;<dd>La chaîne qui représente un nombre non-a-nombre pour les valeurs à virgule flottante, c’est-à-dire, ;dfs.java.text.DecimalFormatSymbols#getNaN getNaN()<dt>LocalInfinity ; ;<dd>La chaîne qui représente l’infini pour les valeurs à virgule flottante, c’est-à-dire, ;dfs.java.text.DecimalFormatSymbols#getInfinity getInfinity()</dl></blockquote>
<h3> « number-syntax">Number syntax</h3>
Les chaînes qui peuvent être analysées sous forme de nombres par une instance de cette classe sont spécifiées en termes de grammaire d’expression régulière suivante, où Rmax est le chiffre le plus élevé dans le radix utilisé (par exemple, Rmax est 9 en base 10).
<dl><dt>NonAsciiDigit : <dd>Un caractère non ASCII c pour lequel java.lang.Character#isDigit Character.isDigit(c) retourne ; true
<dt>Non0Digit : dd<>[1-] |dt<> : dd<>[0-] |dt<> : <dd>( Non0DigitDigit??<dd> ; ; ; ;( LocalGroupSeparatorDigit Digit)+ )<dt>< : >dd( (+ ) |Digit GroupdNumeral)<dt>"Integer-regex"><i>Integer</i> :<dd>( [-+]? (dd) )<>|LocalPositivePrefixNumeralLocalPositiveSuffix<dd>|LocalNegativePrefixChiffreLocalNegativeSuffix<dt>DecimalNumeral : <dd>Numeraldd<>|LocalDecimalSeparatorDigit*<dd>|LocalDecimalSeparatorDigit+<dt>Exponent : <dd>( [eE] [+-]?Digit+ )<dt>"Decimal-regex"><i>Decimal</i> :<dd>( [-+]?Exposant? )<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>
L’espace blanc n’est pas significatif dans les expressions régulières ci-dessus.
Ajouté à la version 1.5.
Java documentation pour java.util.Scanner.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.
Constructeurs
| Nom | Description |
|---|---|
| Scanner(File, Charset) |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. |
| Scanner(File, String) |
Construit un nouveau |
| Scanner(File) |
Construit un nouveau |
| Scanner(IPath, Charset) |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. |
| Scanner(IPath, String) |
Construit un nouveau |
| Scanner(IPath) |
Construit un nouveau |
| Scanner(IReadable) |
Construit un nouveau |
| Scanner(IReadableByteChannel, Charset) |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. |
| Scanner(IReadableByteChannel, String) |
Construit un nouveau |
| Scanner(IReadableByteChannel) |
Construit un nouveau |
| Scanner(Stream, Charset) |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. |
| Scanner(Stream, String) |
Construit un nouveau |
| Scanner(Stream) |
Construit un nouveau |
| Scanner(String) |
Construit un nouveau |
Propriétés
| Nom | Description |
|---|---|
| Class |
Retourne la classe runtime de ce |
| Handle |
Handle de l’instance Android sous-jacente. (Hérité de Object) |
| HasNext |
Retourne true si ce scanneur a un autre jeton dans son entrée. |
| HasNextBigDecimal |
Retourne true si le jeton suivant dans l’entrée de ce scanneur peut être interprété comme une |
| HasNextBigInteger |
Retourne true si le jeton suivant dans l’entrée de ce scanneur peut être interprété comme un |
| HasNextBoolean |
Retourne true si le jeton suivant dans l’entrée de ce scanneur peut être interprété comme une valeur booléenne à l’aide d’un modèle non sensible à la casse créé à partir de la chaîne « true|false ». |
| HasNextByte |
Retourne true si le jeton suivant dans l’entrée de ce scanneur peut être interprété comme une valeur d’octet dans le radix par défaut à l’aide de la |
| HasNextDouble |
Retourne true si le jeton suivant dans l’entrée de ce scanneur peut être interprété comme une valeur double à l’aide de la |
| HasNextFloat |
Retourne true si le jeton suivant dans l’entrée de ce scanneur peut être interprété comme une valeur flottante à l’aide de la |
| HasNextInt |
Retourne true si le jeton suivant dans l’entrée de ce scanneur peut être interprété comme une valeur int dans le radix par défaut à l’aide de la |
| HasNextLine |
Retourne true s’il existe une autre ligne dans l’entrée de ce scanneur. |
| HasNextLong |
Retourne true si le jeton suivant dans l’entrée de ce scanneur peut être interprété comme une valeur longue dans le radix par défaut à l’aide de la |
| HasNextShort |
Retourne true si le jeton suivant dans l’entrée de ce scanneur peut être interprété comme une valeur courte dans le radix par défaut à l’aide de la |
| JniIdentityHashCode |
Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité. (Hérité de Object) |
| JniManagedPeerState |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. (Hérité de JavaObject) |
| JniPeerMembers |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. |
| PeerReference |
Obtient la référence d’objet JNI pour cet homologue Java. (Hérité de Object) |
| ThresholdClass |
Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code. (Hérité de Object) |
| ThresholdType |
Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code. (Hérité de Object) |
Méthodes
| Nom | Description |
|---|---|
| Clone() |
Crée et retourne une copie de cet objet. (Hérité de Object) |
| Close() |
Ferme ce scanneur. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. (Hérité de JavaObject) |
| Delimiter() |
Retourne la |
| Dispose() |
Libère les ressources détenues par cet homologue Java. (Hérité de Object) |
| Dispose(Boolean) |
Libère les ressources détenues par cet homologue Java. (Hérité de Object) |
| DisposeUnlessReferenced() |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. (Hérité de JavaObject) |
| Equals(Object) |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. (Hérité de JavaObject) |
| Equals(Object) |
Indique si un autre objet est « égal à » celui-ci. (Hérité de Object) |
| FindInLine(Pattern) |
Tente de trouver l’occurrence suivante du modèle spécifié ignorant les délimiteurs. |
| FindInLine(String) |
Tente de trouver l’occurrence suivante d’un modèle construit à partir de la chaîne spécifiée, ignorant les délimiteurs. |
| FindWithinHorizon(Pattern, Int32) |
Tente de trouver l’occurrence suivante du modèle spécifié. |
| FindWithinHorizon(String, Int32) |
Tente de trouver l’occurrence suivante d’un modèle construit à partir de la chaîne spécifiée, ignorant les délimiteurs. |
| GetHashCode() |
Retourne une valeur de code de hachage pour l'objet. (Hérité de Object) |
| InvokeHasNext(Pattern) |
Retourne true si le jeton complet suivant correspond au modèle spécifié. |
| InvokeHasNext(String) |
Retourne true si le jeton suivant correspond au modèle construit à partir de la chaîne spécifiée. |
| InvokeHasNextBigInteger(Int32) |
Retourne la valeur true si le jeton suivant dans l’entrée de ce scanneur peut être interprété comme étant dans |
| InvokeHasNextByte(Int32) |
Retourne true si le jeton suivant dans l’entrée de ce scanneur peut être interprété comme une valeur d’octet dans le radix spécifié à l’aide de la |
| InvokeHasNextInt(Int32) |
Retourne true si le jeton suivant dans l’entrée de ce scanneur peut être interprété comme une valeur int dans le radix spécifié à l’aide de la |
| InvokeHasNextLong(Int32) |
Retourne true si le jeton suivant de l’entrée de ce scanneur peut être interprété comme une valeur longue dans le radix spécifié à l’aide de la |
| InvokeHasNextShort(Int32) |
Retourne true si le jeton suivant de l’entrée de ce scanneur peut être interprété comme une valeur courte dans le radix spécifié à l’aide de la |
| IoException() |
Retourne la |
| JavaFinalize() |
Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet. (Hérité de Object) |
| Locale() |
Retourne les paramètres régionaux de ce scanneur. |
| Match() |
Retourne le résultat de correspondance de la dernière opération d’analyse effectuée par ce scanneur. |
| Next() |
Recherche et retourne le jeton complet suivant à partir de ce scanneur. |
| Next(Pattern) |
Retourne le jeton suivant s’il correspond au modèle spécifié. |
| Next(String) |
Retourne le jeton suivant s’il correspond au modèle construit à partir de la chaîne spécifiée. |
| NextBigDecimal() |
Analyse le jeton suivant de l’entrée en tant que |
| NextBigInteger() |
Analyse le jeton suivant de l’entrée en tant que |
| NextBigInteger(Int32) |
Analyse le jeton suivant de l’entrée en tant que |
| NextBoolean() |
Analyse le jeton suivant de l’entrée dans une valeur booléenne et retourne cette valeur. |
| NextByte() |
Analyse le jeton suivant de l’entrée en tant que |
| NextByte(Int32) |
Analyse le jeton suivant de l’entrée en tant que |
| NextDouble() |
Analyse le jeton suivant de l’entrée en tant que |
| NextFloat() |
Analyse le jeton suivant de l’entrée en tant que |
| NextInt() |
Analyse le jeton suivant de l’entrée en tant que |
| NextInt(Int32) |
Analyse le jeton suivant de l’entrée en tant que |
| NextLine() |
Avance ce scanneur au-delà de la ligne actuelle et retourne l’entrée ignorée. |
| NextLong() |
Analyse le jeton suivant de l’entrée en tant que |
| NextLong(Int32) |
Analyse le jeton suivant de l’entrée en tant que |
| NextShort() |
Analyse le jeton suivant de l’entrée en tant que |
| NextShort(Int32) |
Analyse le jeton suivant de l’entrée en tant que |
| Notify() |
Réveille un thread unique qui attend le moniteur de cet objet. (Hérité de Object) |
| NotifyAll() |
Réveille tous les threads qui attendent le moniteur de cet objet. (Hérité de Object) |
| Radix() |
Retourne le rayon par défaut de ce scanneur. |
| Remove() |
L’opération de suppression n’est pas prise en charge par cette implémentation de |
| Reset() |
Réinitialise ce scanneur. |
| SetHandle(IntPtr, JniHandleOwnership) |
Définit la propriété Handle. (Hérité de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. (Hérité de JavaObject) |
| Skip(Pattern) |
Ignore l’entrée qui correspond au modèle spécifié, ignorant les délimiteurs. |
| Skip(String) |
Ignore l’entrée qui correspond à un modèle construit à partir de la chaîne spécifiée. |
| ToArray<T>() |
Crée un tableau managé à partir de ce wrapper de tableau Java. (Hérité de Object) |
| ToString() |
Retourne une représentation de chaîne de l'objet. (Hérité de Object) |
| UnregisterFromRuntime() |
Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité. (Hérité de Object) |
| UseDelimiter(Pattern) |
Définit le modèle de limitation de ce scanneur sur le modèle spécifié. |
| UseDelimiter(String) |
Définit le modèle de limitation de ce scanneur sur un modèle construit à partir du modèle spécifié |
| UseLocale(Locale) |
Définit les paramètres régionaux de ce scanneur sur les paramètres régionaux spécifiés. |
| UseRadix(Int32) |
Définit le radix par défaut de ce scanneur sur le radix spécifié. |
| Wait() |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<> (Hérité de Object) |
| Wait(Int64, Int32) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
| Wait(Int64) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IIterator.Next() |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. |
| IJavaPeerable.Disposed() |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. (Hérité de JavaObject) |
| IJavaPeerable.Finalized() |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. (Hérité de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. (Hérité de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. (Hérité de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. (Hérité de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. (Hérité de JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. |
Méthodes d’extension
| Nom | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtient le nom JNI du type de l’instance |
| JavaAs<TResult>(IJavaPeerable) |
Essayez de forcer |
| JavaCast<TResult>(IJavaObject) |
Effectue une conversion de type vérifiée par le runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Scanneur de texte simple qui peut analyser des types primitifs et des chaînes à l’aide d’expressions régulières. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Essayez de forcer |