Java Academy · Leçon

Valider la saisie de l’utilisateur

Gérer élégamment les saisies invalides

Leçon 3 sur 413 étapes

Valider la saisie de l’utilisateur est une leçon Java Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Java Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Java Academy comprend 4 leçons au total.

Ne faites jamais confiance aux entrées

Les utilisateurs saisissent parfois des valeurs incorrectes : des lettres à la place de nombres, des champs vides ou des valeurs hors limites. Les programmes robustes valident les entrées et redemandent une valeur au lieu de se terminer avec une erreur.

Cette leçon présente des approches de validation élégantes avec Scanner.

Vérifier avant de lire

La protection la plus simple est hasNextInt(). Ne lisez l'entier que lorsqu'il est effectivement disponible.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("42");
        if (scanner.hasNextInt()) {
            System.out.println("Got: " + scanner.nextInt());
        } else {
            System.out.println("Please enter a number");
        }
        scanner.close();
    }
}

Répéter jusqu'à obtenir une valeur valide

Une boucle de nouvelle tentative redemande une valeur jusqu'à ce qu'un entier valide soit fourni. Lorsque le jeton est incorrect, supprimez-le avec next(), puis continuez.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("abc xyz 50");
        int value = -1;
        while (scanner.hasNext()) {
            if (scanner.hasNextInt()) {
                value = scanner.nextInt();
                break;
            }
            scanner.next();
        }
        System.out.println("Accepted: " + value);
        scanner.close();
    }
}

Vérifier les limites

Au-delà du type, les valeurs doivent souvent se trouver dans une plage donnée. Lisez le nombre, puis vérifiez-le avant de l'accepter.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("7");
        int n = scanner.nextInt();
        if (n >= 1 && n <= 10) {
            System.out.println("Valid: " + n);
        } else {
            System.out.println("Out of range");
        }
        scanner.close();
    }
}

Try-Catch lors de l'analyse

Une autre approche consiste à lire une ligne entière, puis à l'analyser en interceptant NumberFormatException pour les textes invalides. Le tampon reste ainsi simple.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("notanumber");
        String line = scanner.nextLine();
        try {
            int n = Integer.parseInt(line.trim());
            System.out.println("Parsed: " + n);
        } catch (NumberFormatException e) {
            System.out.println("Invalid number: " + line);
        }
        scanner.close();
    }
}

Valider un texte non vide

Pour les entrées textuelles, refusez les champs vides. isBlank() renvoie true pour les chaînes vides ou composées uniquement d'espaces.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("   ");
        String name = scanner.nextLine();
        if (name.isBlank()) {
            System.out.println("Name cannot be empty");
        } else {
            System.out.println("Hello, " + name);
        }
        scanner.close();
    }
}

Valider un choix

Pour les choix d'un menu, vérifiez que la valeur fait partie des options autorisées avant de l'utiliser.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("y");
        String choice = scanner.next().toLowerCase();
        if (choice.equals("y") || choice.equals("n")) {
            System.out.println("You chose: " + choice);
        } else {
            System.out.println("Please enter y or n");
        }
        scanner.close();
    }
}

Une méthode de validation réutilisable

Extrayez la validation dans une méthode afin de réutiliser la logique. Ici, une méthode vérifie qu'un âge se trouve dans une plage raisonnable.

public class Main {
    static boolean isValidAge(int age) {
        return age >= 0 && age <= 120;
    }

    public static void main(String[] args) {
        System.out.println(isValidAge(30));
        System.out.println(isValidAge(-5));
    }
}

Combiner le type et les limites

En pratique, la validation combine souvent une vérification du type, une vérification des limites et une boucle de nouvelle tentative au sein d'une seule routine robuste.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner("abc 200 45");
        int valid = -1;
        while (scanner.hasNext()) {
            if (scanner.hasNextInt()) {
                int n = scanner.nextInt();
                if (n >= 1 && n <= 100) {
                    valid = n;
                    break;
                }
            } else {
                scanner.next();
            }
        }
        System.out.println("Final: " + valid);
        scanner.close();
    }
}

Des messages d'erreur clairs

Une bonne validation fournit également des informations utiles à l'utilisateur. Expliquez précisément ce qui était incorrect et ce qui est attendu, plutôt que d'afficher un échec générique.

public class Main {
    static String validate(String input) {
        if (input.isBlank()) return "Input is empty";
        if (!input.matches("\\d+")) return "Only digits allowed";
        return "OK";
    }

    public static void main(String[] args) {
        System.out.println(validate(""));
        System.out.println(validate("12a"));
        System.out.println(validate("123"));
    }
}

Stratégie de validation

Vérifiez le type avec la famille hasNext ou avec try-catch, vérifiez les limites et l'absence de contenu, répétez jusqu'à obtenir une valeur valide et expliquez toujours clairement les erreurs.

Vérification rapide

Vérifiez vos connaissances sur la validation des entrées.

Récapitulatif

Vous avez appris à valider les entrées avec élégance :

  • Protégez vos lectures avec hasNextInt ou analysez les valeurs dans un try-catch
  • Utilisez des boucles de nouvelle tentative et supprimez les jetons incorrects avec next()
  • Vérifiez les limites et refusez les textes vides avec isBlank
  • Extrayez des méthodes de validation réutilisables
  • Fournissez des messages d'erreur clairs et précis
Gratuit pour commencer

Apprends Java avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
104
Leçons
374

Questions Fréquemment Posées

La leçon « Valider la saisie de l’utilisateur » est-elle gratuite ?

Oui — le texte complet de « Valider la saisie de l’utilisateur » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Java Academy, passe à CoddyKit PRO. Le cours Java Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Valider la saisie de l’utilisateur » ?

Gérer élégamment les saisies invalides Tu pratiques Java Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Java Academy ?

Aucune expérience préalable n'est requise. Java Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Valider la saisie de l’utilisateur » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Java Academy ?

Oui. Chaque leçon Java Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Lire la saisie avec Scanner
  2. Lire des nombres et des lignes
  3. Valider la saisie de l’utilisateur
  4. Alternative à BufferedReader
← Retour à Java Academy