Lire les entrées clavier

Programming in Java · course

Voir tous les documents en programmation

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

PDF

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