30/12/2015
Lire les entr es clavier
% $
Accueil
Cours
Apprenez programmer en Java
Lire les entr es clavier
Apprenez programmer en Java
2 < @ ?
Z
40 heures
& Difficile
Licence
8
-
LIRE LES ENTR ES CLAVIER
Apr s la lecture de ce chapitre, vous pourrez saisir des informations et les stocker dans des variables afin de pouvoir
les utiliser a posteriori.
En fait, jusqu' ce que nous voyions les interfaces graphiques, nous travaillerons en mode console. Donc, afin de
rendre nos programmes plus ludiques, il est de bon ton de pouvoir interagir avec ceux-ci. Par contre, ceci peut
engendrer des erreurs (on parlera d'exceptions, mais ce sera trait plus loin). Afin de ne pas surcharger le chapitre,
nous survolerons ce point sans voir les diff rents cas d'erreurs que cela peut engendrer.
La classe Scanner
T
Je me doute qu'il vous tardait de pouvoir communiquer avec votre application& Le moment est enfin venu ! Mais je
vous pr viens, la m thode que je vais vous donner pr sente des failles. Je vous fais confiance pour ne pas rentrer
n'importe quoi n'importe quand !
Je vous ai dit que vos variables de type String sont en r alit des objets de type String . Pour que Java puisse
lire ce que vous tapez au clavier, vous allez devoir utiliser un objet de type Scanner . Cet objet peut prendre
diff rents param tres, mais ici nous n'en utiliserons qu'un : celui qui correspond l'entr e standard en Java. Lorsque
vous faites System.out.println(); , je vous rappelle que vous appliquez la m thode println() sur la sortie
standard ; ici, nous allons utiliser l'entr e standard System.in . Donc, avant d'indiquer Java qu'il faut lire ce que
nous allons taper au clavier, nous devrons instancier un objet Scanner . Avant de vous expliquer ceci, cr ez une
nouvelle classe et tapez cette ligne de code dans votre m thode main :
1
Scanner sc = new Scanner(System.in);
Vous devez avoir une jolie vague rouge sous le mot Scanner . Cliquez sur la croix rouge sur la gauche et faites un
double-clic sur Import 'Scanner' java.util (figure suivante). Et l , l'erreur dispara t !
https://openclassrooms.com/courses/apprenez a programmer en java/lire les entrees clavier
java
1/6
30/12/2015
Lire les entr es clavier
Importer la classe Scanner
Maintenant, regardez au-dessus de la d claration de votre classe, vous devriez voir cette ligne :
java
1
import java.util.Scanner;
Voil ce que nous avons fait. Je vous ai dit qu'il fallait indiquer Java o se trouve la classe Scanner . Pour faire ceci,
nous devons importer la classe Scanner gr ce l'instruction import . La classe que nous voulons se trouve dans
le package java.util .
Un package est un ensemble de classes. En fait, c'est un ensemble de dossiers et de sous-dossiers contenant
une ou plusieurs classes, mais nous verrons ceci plus en d tail lorsque nous ferons nos propres packages.
Publicité
Les classes qui se trouvent dans les packages autres que java.lang (package automatiquement import par Java,
on y trouve entre autres la classe System ) sont importer la main dans vos classes Java pour pouvoir vous en
servir. La fa on dont nous avons import la classe java.util.Scanner dans Eclipse est tr s commode. Vous
pouvez aussi le faire manuellement :
1
2
3
4
//Ceci importe la classe Scanner du package java.util
import java.util.Scanner;
//Ceci importe toutes les classes du package java.util
import java.util.*;
R cup rer ce que vous tapez
Voici l'instruction pour permettre Java de r cup rer ce que vous avez saisi pour ensuite l'afficher :
1
2
3
4
Scanner sc = new Scanner(System.in);
System.out.println("Veuillez saisir un mot :");
String str = sc.nextLine();
System.out.println("Vous avez saisi : " + str);
java
T
java
Une fois l'application lanc e, le message que vous avez crit auparavant s'affiche dans la console, en bas d'Eclipse.
Pensez cliquer dans la console afin que ce que vous saisissez y soit crit et que Java puisse r cup rer ce que vous
avez inscrit (figure suivante) !
https://openclassrooms.com/courses/apprenez a programmer en java/lire les entrees clavier
2/6
30/12/2015
Lire les entr es clavier
Saisie utilisateur dans la console
Si vous remplacez la ligne de code qui r cup re une cha ne de caract res comme suit :
java
1
2
3
4
Scanner sc = new Scanner(System.in);
System.out.println("Veuillez saisir un nombre :");
int str = sc.nextInt();
System.out.println("Vous avez saisi le nombre : " + str);
& vous devriez constater que lorsque vous introduisez votre variable de type Scanner et que vous introduisez le
point permettant d'appeler des m thodes de l'objet, Eclipse vous propose une liste de m thodes associ es cet objet
(ceci s'appelle l'autocompl tion) ; de plus, lorsque vous commencez taper le d but de la m thode nextInt() , le
choix se restreint jusqu' ne laisser que cette seule m thode.
Ex cutez et testez ce programme : vous verrez qu'il fonctionne la perfection. Sauf& si vous saisissez autre chose
qu'un nombre entier !
Vous savez maintenant que pour lire un int , vous devez utiliser nextInt() . De fa on g n rale, dites-vous que
pour r cup rer un type de variable, il vous suffit d'appeler
next<Type de variable commen ant par une majuscule> (rappelez-vous de la convention de nommage
Java).
java
1
2
Publicité
3
4
5
6
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
double d = sc.nextDouble();
long l = sc.nextLong();
byte b = sc.nextByte();
//Etc.
Il y a un type de variables primitives qui n'est pas pris en compte par la classe Scanner : il s'agit du type
char .
https://openclassrooms.com/courses/apprenez a programmer en java/lire les entrees clavier
3/6
30/12/2015
Lire les entr es clavier
Voici comment on pourrait r cup rer un caract re :
1
2
3
4
5
System.out.println("Saisissez une lettre :");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
char carac = str.charAt(0);
System.out.println("Vous avez saisi le caract re : " + carac);
java
Qu'avons-nous fait ici ? Nous avons r cup r une cha ne de caract res, puis utilis une m thode de l'objet String
(ici, charAt(0) ) afin de r cup rer le premier caract re saisi. M me si vous tapez une longue cha ne de caract res,
l'instruction charAt(0) ne renverra que le premier caract re.
Vous devez vous demander pourquoi charAt(0) et non charAt(1) : nous aborderons ce point lorsque nous
verrons les tableaux& Jusqu' ce qu'on aborde les exceptions, je vous demanderai d' tre rigoureux et de faire
attention ce que vous attendez comme type de donn es afin d'utiliser la m thode correspondante.
Une pr cision s'impose, toutefois : la m thode nextLine() r cup re le contenu de toute la ligne saisie et replace la
t te de lecture au d but d'une autre ligne. Par contre, si vous avez invoqu une m thode comme nextInt() ,
nextDouble() et que vous invoquez directement apr s la m thode nextLine() , celle-ci ne vous invitera pas
saisir une cha ne de caract res : elle videra la ligne commenc e par les autres instructions. En effet, celles-ci ne
repositionnent pas la t te de lecture, l'instruction nextLine() le fait leur place. Pour faire simple, ceci :
java
1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Publicité
Scanner sc = new Scanner(System.in);
System.out.println("Saisissez un entier : ");
int i = sc.nextInt();
System.out.println("Saisissez une cha ne : ");
String str = sc.nextLine();
System.out.println("FIN ! ");
}
}
& ne vous demandera pas de saisir une cha ne et affichera directement Fin . Pour pallier ce probl me, il suffit de
vider la ligne apr s les instructions ne le faisant pas automatiquement :
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("Saisissez un entier : ");
int i = sc.nextInt();
System.out.println("Saisissez une cha ne : ");
//On vide la ligne avant d'en lire une autre
sc.nextLine();
String str = sc.nextLine();
System.out.println("FIN ! ");
}
}
En r sum
La lecture des entr es clavier se fait via l'objet Scanner .
https://openclassrooms.com/courses/apprenez a programmer en java/lire les entrees clavier
4/6
30/12/2015
Lire les entr es clavier
Ce dernier se trouve dans le package java.util que vous devrez importer.
Pour pouvoir r cup rer ce vous allez taper dans la console, vous devrez initialiser l'objet Scanner avec
l'entr e standard, System.in .
Il y a une m thode de r cup ration de donn es pour chaque type (sauf les char ) : nextLine() pour les
String , nextInt() pour les int ...
9
J'ai termin ce chapitre et je passe au suivant
S
Les variables et les op rateurs
Les conditions
T
Se d sinscrire de ce cours
Publicité
Comment a marche ?
S
Bien commencer en Java
T
1. Installer les outils de d veloppement
2. Les variables et les op rateurs
3. Lire les entr es clavier
4. Les conditions
5. Les boucles
6. TP : conversion Celsius - Fahrenheit
7. Les tableaux
8. Les m thodes de classe
Quiz
Acc der au forum
Cr par
OpenClassrooms, 1 re plateforme
e-Education en Europe
https://openclassrooms.com/courses/apprenez a programmer en java/lire les entrees clavier
5/6
30/12/2015
Lire les entr es clavier
$
L'auteur
Cyrille Herby
Sp cialiste en d veloppement Java et curieux insatiable dinformatique et de programmation web.
Actuellement auditeur en s curit .
D couvrez aussi ce cours en...
@ < @
Premium
Premium
eBook
Livre papier
OpenClassrooms
Professionnels
Participez
Qui sommes-nous ?
Affiliation
Cr er un cours
Fonctionnement de nos cours
Entreprises
CourseLab
Recrutement
Nous contacter
Suivez-nous
Le blog OpenClassrooms
Universit s et coles
Aider traduire
Conditions G n rales d'Utilisation
$ 6 ;
https://openclassrooms.com/courses/apprenez a programmer en java/lire les entrees clavier
6/6