Dans ce didacticiel, nous découvrirons le scanner Java et ses méthodes à l'aide d'exemples.
La Scanner
classe du java.util
package est utilisée pour lire les données d'entrée de différentes sources comme les flux d'entrée, les utilisateurs, les fichiers, etc. Prenons un exemple.
Exemple 1: lire une ligne de texte à l'aide du scanner
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // takes input from the keyboard String name = input.nextLine(); // prints the name System.out.println("My name is " + name); // closes the scanner input.close(); ) )
Production
Entrez votre nom: Kelvin Je m'appelle Kelvin
Dans l'exemple ci-dessus, notez la ligne
Scanner input = new Scanner(System.in);
Ici, nous avons créé un objet d' Scanner
entrée nommée.
Le System.in
paramètre est utilisé pour prendre l'entrée de l'entrée standard. Cela fonctionne comme si vous preniez des entrées sur le clavier.
Nous avons ensuite utilisé la nextLine()
méthode de la Scanner
classe pour lire une ligne de texte de l'utilisateur.
Maintenant que vous en avez une idée Scanner
, explorons-en davantage.
Importer une classe de scanner
Comme nous pouvons le voir dans l'exemple ci-dessus, nous devons importer le java.util.Scanner
package avant de pouvoir utiliser la Scanner
classe.
import java.util.Scanner;
Pour en savoir plus sur l'importation de packages, consultez la page Packages Java.
Créer un objet Scanner en Java
Une fois le package importé, voici comment créer des Scanner
objets.
// read input from the input stream Scanner sc1 = new Scanner(InputStream input); // read input from files Scanner sc2 = new Scanner(File file); // read input from a string Scanner sc3 = new Scanner(String str);
Ici, nous avons créé des objets de la Scanner
classe qui liront respectivement les entrées de InputStream, File et String.
Méthodes du scanner Java pour prendre des entrées
La Scanner
classe fournit diverses méthodes qui nous permettent de lire des entrées de différents types.
Méthode | La description |
---|---|
nextInt() | lit une int valeur de l'utilisateur |
nextFloat() | lit une float valeur de l'utilisateur |
nextBoolean() | lit une boolean valeur de l'utilisateur |
nextLine() | lit une ligne de texte de l'utilisateur |
next() | lit un mot de l'utilisateur |
nextByte() | lit une byte valeur de l'utilisateur |
nextDouble() | lit une doubl valeur e de l'utilisateur |
nextShort() | lit une short valeur de l'utilisateur |
nextLong() | lit une long valeur de l'utilisateur |
Exemple 2: Java Scanner nextInt ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates a Scanner object Scanner input = new Scanner(System.in); System.out.println("Enter an integer: "); // reads an int value int data1 = input.nextInt(); System.out.println("Using nextInt(): " + data1); input.close(); ) )
Production
Entrez un entier: 22 En utilisant nextInt (): 22
Dans l'exemple ci-dessus, nous avons utilisé la nextInt()
méthode pour lire une valeur entière.
Exemple 3: Java Scanner nextDouble ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter Double value: "); // reads the double value double value = input.nextDouble(); System.out.println("Using nextDouble(): " + value); input.close(); ) )
Production
Entrez la valeur Double: 33,33 En utilisant nextDouble (): 33,33
Dans l'exemple ci-dessus, nous avons utilisé la nextDouble()
méthode pour lire une valeur à virgule flottante.
Exemple 4: Scanner Java suivant ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire word String value = input.next(); System.out.println("Using next(): " + value); input.close(); ) )
Production
Entrez votre nom: Jonny Walker Utilisation suivant (): Jonny
Dans l'exemple ci-dessus, nous avons utilisé la next()
méthode pour lire une chaîne de l'utilisateur.
Ici, nous avons fourni le nom complet. Cependant, la next()
méthode lit uniquement le prénom.
Cela est dû au fait que la next()
méthode lit l'entrée jusqu'au caractère d' espacement . Une fois que l' espace blanc est rencontré, il renvoie la chaîne (à l'exclusion de l'espace blanc).
Exemple 5: Java Scanner nextLine ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire line String value = input.nextLine(); System.out.println("Using nextLine(): " + value); input.close(); ) )
Production
Entrez votre nom: Jonny Walker En utilisant nextLine (): Jonny Walker
Dans le premier exemple, nous avons utilisé la nextLine()
méthode pour lire une chaîne de l'utilisateur.
Contrairement à next()
, la nextLine()
méthode lit toute la ligne d'entrée, y compris les espaces. Le procédé est terminé lorsqu'il rencontre un caractère de ligne suivante, .
Recommended Reading: Java Scanner skipping the nextLine().
Java Scanner with BigInteger and BigDecimal
Java scanner can also be used to read the big integer and big decimal numbers.
- nextBigInteger() - reads the big integer value from the user
- nextBigDecimal() - reads the big decimal value from the user
Example 4: Read BigInteger and BigDecimal
import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter a big integer: "); // reads the big integer BigInteger value1 = input.nextBigInteger(); System.out.println("Using nextBigInteger(): " + value1); System.out.print("Enter a big decimal: "); // reads the big decimal BigDecimal value2 = input.nextBigDecimal(); System.out.println("Using nextBigDecimal(): " + value2); input.close(); ) )
Output
Enter a big integer: 987654321 Using nextBigInteger(): 987654321 Enter a big decimal: 9.55555 Using nextBigDecimal(): 9.55555
In the above example, we have used the java.math.BigInteger
and java.math.BigDecimal
package to read BigInteger
and BigDecimal
respectively.
Working of Java Scanner
La Scanner
classe lit une ligne entière et divise la ligne en jetons. Les jetons sont de petits éléments qui ont une certaine signification pour le compilateur Java. Par exemple,
Supposons qu'il y ait une chaîne d'entrée:
He is 22
Dans ce cas, l'objet scanner lira la ligne entière et divisera la chaîne en jetons: " He ", " is " et " 22 ". L'objet effectue ensuite une itération sur chaque jeton et lit chaque jeton à l'aide de ses différentes méthodes.
Remarque : Par défaut, les espaces sont utilisés pour diviser les jetons.