logo

Scanner Java

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: /