La classe Scanner en Java se trouve dans le package java.util. Java propose différentes manières de lire les entrées du clavier, la classe java.util.Scanner en fait partie.
La classe Java Scanner divise l'entrée en jetons à l'aide d'un délimiteur qui est un espace par défaut. Il fournit de nombreuses méthodes pour lire et analyser diverses valeurs primitives.
La classe Java Scanner est largement utilisée pour analyser le texte des chaînes et des types primitifs à l'aide d'une expression régulière. C'est le moyen le plus simple d'obtenir des entrées en Java. Grâce à Scanner en Java, nous pouvons obtenir les entrées de l'utilisateur dans des types primitifs tels que int, long, double, byte, float, short, etc.
La classe Java Scanner étend la classe Object et implémente les interfaces Iterator et Closeable.
La classe Java Scanner fournit des méthodes nextXXX() pour renvoyer le type de valeur tel que nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean(), etc. . Pour obtenir un seul caractère du scanner, vous pouvez appeler la méthode next().charAt(0) qui renvoie un seul caractère.
Déclaration de classe du scanner Java
public final class Scanner extends Object implements Iterator
Comment obtenir un scanner Java
Pour obtenir l'instance de Java Scanner qui lit les entrées de l'utilisateur, nous devons transmettre le flux d'entrée (System.in) dans le constructeur de la classe Scanner. Par exemple:
Scanner in = new Scanner(System.in);
Pour obtenir l'instance de Java Scanner qui analyse les chaînes, nous devons transmettre les chaînes dans le constructeur de la classe Scanner. Par exemple:
Scanner in = new Scanner('Hello Javatpoint');
Constructeurs de classe Java Scanner
SN | Constructeur | Description |
---|---|---|
1) | Scanner (source du fichier) | Il construit un nouveau scanner qui produit les valeurs analysées à partir du fichier spécifié. |
2) | Scanner (source du fichier, chaîne charsetName) | Il construit un nouveau scanner qui produit les valeurs analysées à partir du fichier spécifié. |
3) | Scanner (source InputStream) | Il construit un nouveau scanner qui produit des valeurs analysées à partir du flux d'entrée spécifié. |
4) | Scanner (source InputStream, String charsetName) | Il construit un nouveau scanner qui produit des valeurs analysées à partir du flux d'entrée spécifié. |
5) | Scanner (source lisible) | Il construit un nouveau scanner qui produit des valeurs analysées à partir de la source spécifiée. |
6) | Scanner (source de chaîne) | Il construit un nouveau scanner qui produit des valeurs analysées à partir de la chaîne spécifiée. |
7) | Scanner (source ReadableByteChannel) | Il construit un nouveau scanner qui produit les valeurs analysées à partir du canal spécifié. |
8) | Scanner (source ReadableByteChannel, String charsetName) | Il construit un nouveau scanner qui produit les valeurs analysées à partir du canal spécifié. |
9) | Scanner (Chemin source) | Il construit un nouveau scanner qui produit les valeurs analysées à partir du fichier spécifié. |
dix) | Scanner (Chemin source, String charsetName) | Il construit un nouveau scanner qui produit les valeurs analysées à partir du fichier spécifié. |
Méthodes de classe Java Scanner
Voici la liste des méthodes du scanner :
SN | Modificateur et type | Méthode | Description |
---|---|---|---|
1) | vide | fermer() | Il est utilisé pour fermer ce scanner. |
2) | modèle | délimiteur() | Il est utilisé pour obtenir le modèle que la classe Scanner utilise actuellement pour faire correspondre les délimiteurs. |
3) | Flux | Trouver tout() | Il est utilisé pour trouver un flux de résultats de correspondance qui correspondent à la chaîne de modèle fournie. |
4) | Chaîne | trouverEnLigne() | Il est utilisé pour trouver la prochaine occurrence d'un modèle construit à partir de la chaîne spécifiée, en ignorant les délimiteurs. |
5) | chaîne | trouverDansHorizon() | Il est utilisé pour trouver la prochaine occurrence d'un modèle construit à partir de la chaîne spécifiée, en ignorant les délimiteurs. |
6) | booléen | aSuivant() | Il renvoie vrai si ce scanner a un autre jeton dans son entrée. |
7) | booléen | hasNextBigDecimal() | Il est utilisé pour vérifier si le prochain jeton dans l'entrée de ce scanner peut être interprété comme un BigDecimal en utilisant la méthode nextBigDecimal() ou non. |
8) | booléen | hasNextBigInteger() | Il est utilisé pour vérifier si le prochain jeton dans l'entrée de ce scanner peut être interprété comme un BigDecimal en utilisant la méthode nextBigDecimal() ou non. |
9) | booléen | hasNextBoolean() | Il est utilisé pour vérifier si le prochain jeton dans l'entrée de ce scanner peut être interprété comme un booléen en utilisant la méthode nextBoolean() ou non. |
dix) | booléen | hasNextByte() | Il est utilisé pour vérifier si le prochain jeton dans l'entrée de ce scanner peut être interprété comme un octet en utilisant la méthode nextBigDecimal() ou non. |
onze) | booléen | hasNextDouble() | Il est utilisé pour vérifier si le prochain jeton dans l'entrée de ce scanner peut être interprété comme un BigDecimal en utilisant la méthode nextByte() ou non. |
12) | booléen | hasNextFloat() | Il est utilisé pour vérifier si le prochain jeton dans l'entrée de ce scanner peut être interprété comme un Float en utilisant la méthode nextFloat() ou non. |
13) | booléen | hasNextInt() | Il est utilisé pour vérifier si le prochain jeton dans l'entrée de ce scanner peut être interprété comme un int en utilisant la méthode nextInt() ou non. |
14) | booléen | hasNextLine() | Il est utilisé pour vérifier s'il y a ou non une autre ligne dans l'entrée de ce scanner. |
quinze) | booléen | aNextLong() | Il est utilisé pour vérifier si le prochain jeton dans l'entrée de ce scanner peut être interprété comme un Long en utilisant la méthode nextLong() ou non. |
16) | booléen | hasNextShort() | Il est utilisé pour vérifier si le prochain jeton dans l'entrée de ce scanner peut être interprété comme un Short en utilisant la méthode nextShort() ou non. |
17) | IOException | ioException() | Il est utilisé pour obtenir la dernière exception IOException levée par la lecture de ce scanner. |
18) | Locale | locale() | Il est utilisé pour obtenir un Locale de la classe Scanner. |
19) | Résultat de correspondance | correspondre() | Il est utilisé pour obtenir le résultat de correspondance de la dernière opération de numérisation effectuée par ce scanner. |
vingt) | Chaîne | suivant() | Il est utilisé pour obtenir le prochain jeton complet du scanner utilisé. |
vingt-et-un) | GrandDécimal | suivantBigDecimal() | Il analyse le jeton suivant de l'entrée en tant que BigDecimal. |
22) | GrandEntier | suivantBigInteger() | Il analyse le prochain jeton de l'entrée en tant que BigInteger. |
23) | booléen | suivantBooléen() | Il analyse le jeton suivant de l'entrée en une valeur booléenne et renvoie cette valeur. |
24) | octet | octet suivant() | Il analyse le jeton suivant de l'entrée sous forme d'octet. |
25) | double | suivantDouble() | Il scanne le jeton suivant de l'entrée comme un double. |
26) | flotter | suivantFloat() | Il analyse le jeton suivant de l'entrée sous forme de flotteur. |
27) | int | suivantInt() | Il analyse le jeton suivant de l'entrée en tant que Int. |
28) | Chaîne | ligne suivante() | Il est utilisé pour obtenir la chaîne d'entrée qui a été ignorée de l'objet Scanner. |
29) | long | suivantLong() | Il analyse le jeton suivant de l'entrée en tant que long. |
30) | court | suivantShort() | Il scanne le jeton suivant de l'entrée comme un court-circuit. |
31) | int | base() | Il est utilisé pour obtenir la base par défaut de l'utilisation du scanner. |
32) | vide | retirer() | Il est utilisé lorsque l’opération de suppression n’est pas prise en charge par cette implémentation d’Iterator. |
33) | Scanner | réinitialiser() | Il est utilisé pour réinitialiser le scanner en cours d'utilisation. |
3.4) | Scanner | sauter() | Il ignore les entrées qui correspondent au modèle spécifié, en ignorant les délimiteurs |
35) | Flux | jetons() | Il est utilisé pour obtenir un flux de jetons séparés par des délimiteurs à partir de l'objet Scanner en cours d'utilisation. |
36) | Chaîne | àChaîne() | Il est utilisé pour obtenir la représentation sous forme de chaîne du scanner utilisé. |
37) | Scanner | utiliserDelimiter() | Il est utilisé pour définir le modèle de délimitation du scanner utilisé sur le modèle spécifié. |
38) | Scanner | utiliserLocale() | Il est utilisé pour définir l'objet locale de ce scanner sur la locale spécifiée. |
39) | Scanner | utiliserRadix() | Il est utilisé pour définir la base par défaut du scanner utilisé sur la base spécifiée. |
Exemple 1
Voyons un exemple simple de Java Scanner où nous obtenons une seule entrée de l'utilisateur. Ici, nous demandons une chaîne via la méthode in.nextLine().
import java.util.*; public class ScannerExample { public static void main(String args[]){ Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.nextLine(); System.out.println('Name is: ' + name); in.close(); } }
Sortir:
Enter your name: sonoo jaiswal Name is: sonoo jaiswal
Exemple 2
import java.util.*; public class ScannerClassExample1 { public static void main(String args[]){ String s = 'Hello, This is JavaTpoint.'; //Create scanner Object and pass string in it Scanner scan = new Scanner(s); //Check if the scanner has a token System.out.println('Boolean Result: ' + scan.hasNext()); //Print the string System.out.println('String: ' +scan.nextLine()); scan.close(); System.out.println('--------Enter Your Details-------- '); Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.next(); System.out.println('Name: ' + name); System.out.print('Enter your age: '); int i = in.nextInt(); System.out.println('Age: ' + i); System.out.print('Enter your salary: '); double d = in.nextDouble(); System.out.println('Salary: ' + d); in.close(); } }
Sortir:
Boolean Result: true String: Hello, This is JavaTpoint. -------Enter Your Details--------- Enter your name: Abhishek Name: Abhishek Enter your age: 23 Age: 23 Enter your salary: 25000 Salary: 25000.0
Exemple 3
import java.util.*; public class ScannerClassExample2 { public static void main(String args[]){ String str = 'Hello/This is JavaTpoint/My name is Abhishek.'; //Create scanner with the specified String Object Scanner scanner = new Scanner(str); System.out.println('Boolean Result: '+scanner.hasNextBoolean()); //Change the delimiter of this scanner scanner.useDelimiter('/'); //Printing the tokenized Strings System.out.println('---Tokenizes String---'); while(scanner.hasNext()){ System.out.println(scanner.next()); } //Display the new delimiter System.out.println('Delimiter used: ' +scanner.delimiter()); scanner.close(); } }
Sortir:
Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /