Comment utiliser le scanner en java

Comment utiliser le scanner en java
Le scanner en Java est une classe en Java.package util. Cette classe vise à lire l'entrée d'une chaîne, le clavier, le fichier ou le socket réseau. Cet article se concentre uniquement sur la lecture des entrées du clavier et l'affichage du résultat à la fenêtre du terminal. Des idées similaires peuvent être utilisées pour lire les entrées du fichier ou du canal réseau. Le scanner ne s'imprime pas à la fenêtre du terminal. Pour imprimer au terminal, utilisez le système.objet. Il est simple d'utiliser cet objet pour imprimer sur le terminal, comme illustré ci-dessous.

Pour utiliser la classe de scanner, il doit être importé en premier. Après cela, un objet doit en être instancié. Après avoir utilisé l'objet scanner, il doit être fermé. L'objet de flux d'entrée qui représente le clavier est le système.dans. Le scanner a de nombreuses méthodes. Seuls ceux couramment utilisés seront expliqués dans cet article.

Contenu de l'article

  • Utilisation simple de la classe de scanner
  • Cracher la ligne d'entrée dans les valeurs
  • Lecture et validation des types de données primitives
  • Attribuer un jeton d'entrée à une variable
  • Conclusion

Utilisation simple de la classe de scanner

Le code suivant demande à l'utilisateur de taper une phrase, puis il affiche la phrase:

Importer Java.user.Scanner;
classe publique TheClass
public static void main (String [] args)
Scanner scanobj = nouveau scanner (système.dans);
Système.dehors.println ("Tapez une phrase et appuyez sur Entrée:");
String phrase = scanobj.NextLine ();
Système.dehors.println (phrase);
scanobj.fermer();

La première ligne importe la classe de scanner. Dans la fonction principale, la première ligne crée un objet de scanner en utilisant le «système.dans ”objet pour le clavier. Dès que l'objet scanner est créé, il commence à attendre l'entrée. La ligne suivante imprime une déclaration, demandant à l'utilisateur de taper une phrase. La ligne suivante dans le code utilise la méthode NextLine () de l'objet de scanner pour lire la phrase de l'utilisateur après avoir appuyé sur Entrée. La ligne après, dans le code, réimprime la phrase à la fenêtre du terminal. La dernière ligne ferme l'objet scanner.

Cracher la ligne d'entrée dans les valeurs

Le code suivant divise la ligne d'entrée dans les mots (jetons), en utilisant l'espace comme délimiteur:

Importer Java.user.Scanner;
classe publique TheClass
public static void main (String [] args)
Scanner scanobj = nouveau scanner (système.dans);
Système.dehors.println ("Tapez une ligne de jetons et appuyez sur Entrée:");
pendant que (scanobj.Hasnext ())
Système.dehors.println (scanobj.suivant());

scanobj.fermer();

Hasnext () et Next () sont deux autres méthodes de l'objet scanner. Lorsque l'objet de scanner lit une ligne, il le maintient. suivant () accède au prochain jetons (mot). Hasnext () renvoie true s'il y a un autre jeton pas encore accessible.

Malheureusement, l'utilisateur devrait toujours saisir la contribution pour la division et la refonte avec ce code. Pour terminer tout cela, appuyez sur Ctrl + Z, et vous devriez être de retour à l'invite de commande.

Dans le code ci-dessus, le délimiteur sépare les jetons dans l'espace. Un autre personnage peut être utilisé. Le code suivant utilise la virgule. N'oubliez pas d'appuyer sur Ctrl + Z pour terminer la boucle si vous testez le code.

Importer Java.user.Scanner;
classe publique TheClass
public static void main (String [] args)
Scanner scanobj = nouveau scanner (système.dans);
Système.dehors.println ("Tapez une ligne de jetons et appuyez sur Entrée:");
scanobj.usageDeliter (",");
pendant que (scanobj.Hasnext ())
Système.dehors.println (scanobj.suivant());

scanobj.fermer();

Si vous testiez le code, vous auriez remarqué que les espaces de jetons ont été inclus dans le cadre de jetons (sortie). L'expression, Scanobj.usageDeliter («,»); tapé après la lecture de la ligne d'entrée; c'est ce qui fait de la virgule, le délimiteur.

Lecture et validation des types de données primitives

Méthode NextBoolean ()

Dans le code suivant, l'utilisateur devrait taper «vrai» ou «faux» sans les citations, puis appuyez sur la touche Entrée si l'utilisateur tape autre chose, tel que «oui» ou «non», un message d'erreur sera affiché.

Importer Java.user.Scanner;
classe publique TheClass
public static void main (String [] args)
Système.dehors.Imprimer ("Êtes-vous au-dessus de 24? ");
Scanner scanobj = nouveau scanner (système.dans);
booléen bl = scanobj.NextBoolean ();
if (bl == true)
Système.dehors.println ("vous avez plus de 24");

else if (bl == false)
Système.dehors.println ("vous avez moins de 24");

scanobj.fermer();

Étant donné que Java émettra un message d'erreur tant que l'entrée n'est pas vraie ou fausse exactement, «Sinon If» a été utilisée au lieu de «Else».

La différence entre les méthodes, Print et Println, est que Print s'attend à l'entrée sur la ligne actuelle, tandis que Println attend l'entrée sur la ligne suivante.

Méthode NextByte ()

Avec le jeu de caractères ASCII, un personnage est un octet. Cependant, avec quelques jeux de caractères orientaux, un personnage peut être composé de plus d'un octet. Indépendamment du jeu de caractères, la méthode NextByte lit et valide l'octet suivant de l'entrée. Le code suivant peut être utilisé à cet effet:

Importer Java.user.Scanner;
classe publique TheClass
public static void main (String [] args)
Système.dehors.Imprimer ("Numéro de type < 128, press Enter: ");
Scanner scanobj = nouveau scanner (système.dans);
octet bt = scanobj.NextByte ();
Système.dehors.println (bt);
scanobj.fermer();

Si un nombre supérieur à 127 ou un caractère alphabet est entré pour ce code, un message d'erreur serait émis.

Méthode NextInt ()

Le jeton entier suivant comme entrée peut également être validé et accepté. Le code suivant peut être utilisé:

Importer Java.user.Scanner;
classe publique TheClass
public static void main (String [] args)
Système.dehors.print ("Entrez n'importe quel entier:");
Scanner scanobj = nouveau scanner (système.dans);
int num = scanobj.NextInt ();
Système.dehors.println (num);
scanobj.fermer();

Les espaces de direction ou de fuite ont été supprimés. Pour ce code, toute valeur entière, y compris des valeurs supérieures à 127, serait acceptée. Avec ces méthodes NextXxx (), une fois la validation échouée, un message d'erreur est émis.

Méthode NextBigInteger ()

Il semble que les ingénieurs logiciels ne cessent de trouver de nouvelles choses. Un grand entier est un entier dont la valeur est beaucoup plus grande que celle d'un entier. Cependant, avec Java, il peut être lu de la même manière que l'entier. Le code suivant illustre ceci:

Importer Java.user.Scanner;
Importer Java.mathématiques.BigInteger;
classe publique TheClass
public static void main (String [] args)
Système.dehors.println ("Entrez n'importe quel entier pour un grand entier:");
Scanner scanobj = nouveau scanner (système.dans);
BigInteger num = scanobj.NextBigInteger ();
Système.dehors.println (num);
scanobj.fermer();

Remarque l'instruction d'importation: «Importer Java.mathématiques.BigInteger; ». Notez également que le type entier grand est commencé avec une majuscule B et non une minuscule B.

Méthode NextFloat ()

Le jeton flottant suivant en tant qu'entrée peut également être validé et accepté. Le code suivant peut être utilisé:

Importer Java.user.Scanner;
classe publique TheClass
public static void main (String [] args)
Système.dehors.print ("Entrez n'importe quel flotteur:");
Scanner scanobj = nouveau scanner (système.dans);
float num = scanobj.NextFloat ();
Système.dehors.println (num);
scanobj.fermer();

Un exemple de numéro de flotteur est de 23.456. Les espaces de direction ou de fuite ont été supprimés.

NextDouble ()

Le double jeton suivant comme entrée peut également être validé et accepté. Le code suivant peut être utilisé:

Importer Java.user.Scanner;
classe publique TheClass
public static void main (String [] args)
Système.dehors.print ("Entrez n'importe quel double:");
Scanner scanobj = nouveau scanner (système.dans);
double num = scanobj.NextDouble ();
Système.dehors.println (num);
scanobj.fermer();

Un exemple de double nombre est de 23.456. Un numéro double est différent d'un flotteur car il a moins de marge d'erreur. Les espaces de direction ou de fuite ont été supprimés.

Méthode NextLine ()

La méthode NextLine () est pour une chaîne. Si la chaîne est la ligne d'entrée du clavier après avoir appuyé sur Entrée, il peut avoir le caractère Newline, '\ n'. Le code suivant peut être utilisé:

Importer Java.user.Scanner;
classe publique TheClass
public static void main (String [] args)
Système.dehors.println ("Entrez une ligne ayant \\ n:");
Scanner scanobj = nouveau scanner (système.dans);
String str = scanobj.NextLine ();
Système.dehors.println (str);
scanobj.fermer();

Notez que le type de chaîne est commencé avec les majuscules et non les minuscules.

Les méthodes NextLine (), Hasnext () et Next () ont été utilisées précédemment, dans cet article. Le scanner a d'autres méthodes et autres méthodes de données primitives - voir plus tard.

Attribuer une entrée à une variable

L'entrée peut être attribuée à une variable, comme le montre le code suivant:

Importer Java.user.Scanner;
classe publique TheClass
public static void main (String [] args)
Scanner scanobj = nouveau scanner (système.dans);
Système.dehors.print ("Entrer le nom:");
Nom de la chaîne = Scanobj.NextLine ();
Système.dehors.print ("Entrez l'âge:");
int Age = scanobj.NextInt ();
Système.dehors.print ("Entrez le salaire:");
double salaire = scanobj.NextDouble ();
Système.dehors.println ("name:" + name + ", âge:" + Âge + ", salaire:" + salaire);
scanobj.fermer();

Conclusion

Le scanner en Java est une classe en Java.package util. Cette classe vise à lire l'entrée d'une chaîne, le clavier, le fichier ou le socket réseau. Cet article s'est concentré principalement sur la lecture des entrées du clavier et l'affichage du résultat à la fenêtre du terminal. Des idées similaires peuvent être utilisées pour lire les entrées de la chaîne, du fichier ou du canal réseau.

Pour lire toute la gamme d'entrée du clavier, utilisez la méthode Nextline (). La ligne en tant que chaîne peut être divisée en jetons, en utilisant les méthodes Hasnext () et Next (), et la boucle while. Le délimiteur par défaut pour la division est l'espace, mais le programmeur peut choisir un autre délimiteur. N'oubliez pas de faire Ctrl + Z pour arrêter la boucle while, si nécessaire. La suppression des espaces de leaders et de fuite peut être effectué en utilisant d'autres schémas non abordés dans cet article. La validation des jetons peut également être effectuée en utilisant d'autres schémas non abordés dans cet article.

Les valeurs primitives peuvent être lues à l'aide de NextBoolean (), NextByte (), NextInt (), etc. Ces méthodes NextXxx () font la validation et suppriment également les espaces de tête et de fuite.

Le scanner Java a beaucoup plus de méthodes. Cependant, l'utilisation de base du scanner a été expliquée dans cet article. La sélection d'un jeton est en fait effectuée en utilisant des techniques d'expression régulières. L'utilisation de techniques d'expression régulière est une discussion, pour une autre fois.