Introduction
Lors du développement d'applications Java, la validation des entrées utilisateur est une tâche cruciale. Ce lab démontre trois méthodes courantes pour vérifier si une entrée donnée est un entier valide :
- En utilisant la méthode
Integer.parseInt() - En utilisant la méthode
Scanner.hasNextInt() - En utilisant la méthode
Character.isDigit()
Nous allons implémenter chaque méthode étape par étape et comprendre leurs différences et leurs cas d'utilisation.
Configuration du projet Java
Créons un nouveau fichier Java pour implémenter nos méthodes de validation d'entiers.
- Ouvrez votre terminal et assurez-vous que vous êtes dans le répertoire
/home/labex/project:
pwd
- Créez un nouveau fichier Java nommé
CheckInputInteger.java:
touch CheckInputInteger.java
- Ouvrez le fichier dans votre éditeur de texte préféré et ajoutez la structure de classe de base :
import java.util.Scanner;
public class CheckInputInteger {
public static void main(String[] args) {
// Nous ajouterons nos appels de méthodes ici
}
}

Implémentation de la validation d'entier avec Integer.parseInt()
La méthode Integer.parseInt() tente de convertir une chaîne de caractères en un entier. Si la conversion échoue, elle lève une NumberFormatException. Nous pouvons utiliser ce comportement pour valider les entiers.
- Ajoutez la méthode suivante à votre fichier
CheckInputInteger.java:
// Ajoutez cette méthode à l'intérieur de la classe CheckInputInteger
public static void checkUsingParseInt(String input) {
try {
// Tente de convertir la chaîne d'entrée en un entier
Integer.parseInt(input);
System.out.println(input + " est un entier valide");
} catch (NumberFormatException e) {
// Si la conversion échoue, l'entrée n'est pas un entier valide
System.out.println(input + " n'est pas un entier valide");
}
}
- Mettez à jour la méthode
mainpour tester cette implémentation :
// Modifiez la méthode main pour tester cette implémentation
public static void main(String[] args) {
// Cas de test
checkUsingParseInt("123"); // Entier valide
checkUsingParseInt("12.34"); // Pas un entier
checkUsingParseInt("abc"); // Pas un entier
}
- Le fichier devrait ressembler à ceci :
import java.util.Scanner;
public class CheckInputInteger {
// Définir la méthode à l'intérieur de la classe
public static void checkUsingParseInt(String input) {
try {
// Tente de convertir la chaîne d'entrée en un entier
Integer.parseInt(input);
System.out.println(input + " est un entier valide");
} catch (NumberFormatException e) {
// Si la conversion échoue, l'entrée n'est pas un entier valide
System.out.println(input + " n'est pas un entier valide");
}
}
public static void main(String[] args) {
// Cas de test
checkUsingParseInt("123"); // Entier valide
checkUsingParseInt("12.34"); // Pas un entier
checkUsingParseInt("abc"); // Pas un entier
}
}
- Compilez et exécutez votre programme :
javac CheckInputInteger.java
java CheckInputInteger
Vous devriez voir la sortie suivante :
123 est un entier valide
12.34 n'est pas un entier valide
abc n'est pas un entier valide

Implémentation de la validation d'entier avec Scanner.hasNextInt()
La classe Scanner fournit la méthode hasNextInt() pour vérifier si le prochain jeton (token) dans l'entrée peut être interprété comme un entier. Cette méthode est particulièrement utile lors de la lecture des entrées utilisateur depuis la console.
- Ajoutez la méthode suivante à votre fichier
CheckInputInteger.java, à l'intérieur de la classeCheckInputInteger:
public static void checkUsingScanner(String input) {
Scanner scanner = new Scanner(input);
if (scanner.hasNextInt()) {
System.out.println(input + " est un entier valide");
} else {
System.out.println(input + " n'est pas un entier valide");
}
scanner.close();
}
- Mettez à jour la méthode
mainpour inclure des tests pour cette implémentation :
public static void main(String[] args) {
// Cas de test précédents
checkUsingParseInt("123");
checkUsingParseInt("12.34");
checkUsingParseInt("abc");
// Nouveaux cas de test
checkUsingScanner("456"); // Entier valide
checkUsingScanner("-789"); // Entier valide
checkUsingScanner("12.34"); // Pas un entier
}
- Compilez et exécutez votre programme :
javac CheckInputInteger.java
java CheckInputInteger
Vous devriez voir la sortie suivante :
456 est un entier valide
-789 est un entier valide
12.34 n'est pas un entier valide
Ceci démontre que la méthode Scanner.hasNextInt() identifie correctement les entiers valides et invalides.

Implémentation de la validation d'entier avec Character.isDigit()
La méthode Character.isDigit() vérifie si un caractère est un chiffre numérique. Nous pouvons l'utiliser pour valider les entiers en vérifiant chaque caractère dans la chaîne d'entrée.
- Ajoutez la méthode suivante à votre fichier
CheckInputInteger.java:
public static void checkUsingIsDigit(String input) {
boolean isValid = true;
// Gérer les nombres négatifs en vérifiant le premier caractère
int startIndex = (input.charAt(0) == '-') ? 1 : 0;
// Vérifier chaque caractère
for (int i = startIndex; i < input.length(); i++) {
if (!Character.isDigit(input.charAt(i))) {
isValid = false;
break;
}
}
if (isValid) {
System.out.println(input + " est un entier valide");
} else {
System.out.println(input + " n'est pas un entier valide");
}
}
- Mettez à jour la méthode
mainavec les derniers cas de test :
public static void main(String[] args) {
// Cas de test précédents
checkUsingParseInt("123");
checkUsingParseInt("12.34");
checkUsingParseInt("abc");
checkUsingScanner("456");
checkUsingScanner("-789");
checkUsingScanner("12.34");
// Nouveaux cas de test
checkUsingIsDigit("789"); // Entier valide
checkUsingIsDigit("-123"); // Entier valide
checkUsingIsDigit("12.34"); // Pas un entier
}
- Compilez et exécutez la version finale de votre programme :
javac CheckInputInteger.java
java CheckInputInteger
Vous devriez voir la sortie suivante :
789 est un entier valide
-123 est un entier valide
12.34 n'est pas un entier valide

Résumé
Dans ce lab, nous avons exploré trois méthodes différentes pour valider les entrées d'entiers en Java :
- La méthode
Integer.parseInt(), qui est simple mais nécessite une gestion des exceptions (exception handling) - La méthode
Scanner.hasNextInt(), qui est excellente pour la lecture des entrées utilisateur - La méthode
Character.isDigit(), qui fournit une validation caractère par caractère
Chaque méthode a ses avantages et ses cas d'utilisation. La méthode parseInt() est bonne pour une conversion simple de chaîne de caractères en entier, Scanner.hasNextInt() est excellente pour la lecture des entrées utilisateur, et Character.isDigit() offre le plus de contrôle sur le processus de validation.
Ces techniques de validation sont essentielles pour développer des applications Java robustes qui peuvent gérer les entrées utilisateur de manière sûre et efficace.



