Classe de scanner Java

le Scanner classe de la java.util package est utilisé pour lire les données d’entrée de différentes sources telles que 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 name
        System.out.println("My name is " + name);

        // Closes the scanner
        input.close();
    }
}
 

Production

Entrez votre nom: Jack
Mon nom est Jack

Dans l’exemple ci-dessus, notez la ligne

 Scanner input = new Scanner(System.in);
 

Ici, nous avons créé un objet de Scanner nommécontribution.

le System.in Le 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é le nextLine() méthode de la Scanner classe pour lire une ligne de texte de l’utilisateur.

Maintenant que vous avez une idée sur Scanner , explorons plus à ce sujet.


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 le Scanner classe.

 import java.util.Scanner;
 

Créer un objet Scanner en Java

Une fois que nous importons le package comme mentionné ci-dessus, voici comment nous pouvons créer Scanner objets.

 // To read input from the input stream
Scanner sc1 = new Scanner(InputStream input);

// To read input from files
Scanner sc2 = new Scanner(File file);

// To read input from a string
Scanner sc3 = new Scanner(String str);
 

Ici, nous avons créé des objets du Scanner classe qui lira respectivement l’entrée de InputStream, des fichiers et de la chaîne.


Méthodes du scanner Java pour prendre des entrées

le Scanner La classe fournit diverses méthodes qui nous permettent de lire des entrées de différents types.

Méthode La description
 nextInt()  lit un int valeur de l’utilisateur
 nextFloat()  lit un float valeur de l’utilisateur
 nextBoolean()  lit un boolean valeur de l’utilisateur
 nextLine()  lit une ligne de texte de l’utilisateur
 next()  lit un mot de l’utilisateur
 nextByte()  lit un byte valeur de l’utilisateur
 nextDouble()  lit un doubl e valeur de l’utilisateur
 nextShort()  lit un short valeur de l’utilisateur
 nextLong()  lit un long valeur de l’utilisateur

Exemple 2: Java Scanner nextInt ()

 import java.util.Scanner;

class Main {
    public static void main(String[] args) {

        // creating a Scanner object
        Scanner input = new Scanner(System.in);

        System.out.println("Enter an integer: ");

        // read an int value
        int data1 = input.nextInt();

        System.out.println("Using nextInt(): " + data1);

        input.close();
    }
}
 

Production

Entrez un entier:
22
Utilisation de nextInt (): 22

Dans l’exemple ci-dessus, nous avons utilisé le 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
Utilisation de nextDouble (): 33,33

Dans l’exemple ci-dessus, nous avons utilisé le 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 de next (): Jonny

Dans l’exemple ci-dessus, nous avons utilisé le next() méthode pour lire une chaîne de l’utilisateur.

Ici, nous avons fourni le nom complet. Cependant, le next() La méthode ne lit que le prénom.

C’est parce que le next() la méthode lit l’entrée jusqu’à laespace blancpersonnage. Une fois laespace blancest rencontré, il renvoie la chaîne (à l’exclusion des espaces).


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
Utilisation de nextLine (): Jonny Walker

Dans le premier exemple, nous avons utilisé le nextLine() méthode pour lire une chaîne de l’utilisateur.

contrairement à next() , les nextLine() La méthode lit toute la ligne d’entrée, y compris les espaces. La méthode se termine lorsqu’elle rencontre un caractère de ligne suivant, \n .

Lecture recommandée:Le scanner Java ignore la nextLine ().


Scanner Java avec BigInteger et BigDecimal

Le scanner Java peut également être utilisé pour lire les grands nombres entiers et décimaux. Pour en savoir plus sur BigInteger et BigDecimal, visitezJava BigIntegeretJava BigDecimal.

  •  nextBigInteger() – lit la grande valeur entière de l’utilisateur
  •  nextBigDecimal() – lit la grande valeur décimale de l’utilisateur

Exemple 4: Lire BigInteger et 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();
   }
}
 

Production

Entrez un grand entier: 987654321
Utilisation de nextBigInteger (): 987654321
Entrez une grande décimale: 9,55555
Utilisation de nextBigDecimal (): 9.55555

Dans l’exemple ci-dessus, nous avons utilisé le java.math.BigInteger et java.math.BigDecimal paquet à lire BigInteger et BigDecimal respectivement.


Fonctionnement du scanner Java

le Scanner class 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