Comment obtenir l'entrée d'un utilisateur en Java (avec des images)

Table des matières:

Comment obtenir l'entrée d'un utilisateur en Java (avec des images)
Comment obtenir l'entrée d'un utilisateur en Java (avec des images)

Vidéo: Comment obtenir l'entrée d'un utilisateur en Java (avec des images)

Vidéo: Comment obtenir l'entrée d'un utilisateur en Java (avec des images)
Vidéo: [Guide] Plague Inc. Evolved : Succès Virus Nipah 2024, Peut
Anonim

Lors de la programmation en Java ou dans tout autre langage, vous devrez probablement utiliser les informations d'entrée d'un utilisateur. Java fournit de nombreuses méthodes différentes pour obtenir des informations utilisateur, mais la méthode la plus courante et peut-être la plus simple à implémenter consiste à utiliser l'objet Scanner.

Pas

Méthode 1 sur 2: Vidéos

1514756 1
1514756 1

Étape 1. Importez la classe Scanner

Vous pouvez soit choisir d'importer le

java.util. Scanner

classe ou l'ensemble

java.util

emballer. Pour importer une classe ou un package, ajoutez l'une des lignes suivantes au tout début de votre code:

    importer java.util. Scanner; // Cela importera uniquement la classe Scanner. importer java.util.*; // Cela importera l'intégralité du package java.util.

1514756 2
1514756 2

Étape 2. Initialisez un nouvel objet Scanner en passant le

System.in

flux d'entrée au constructeur.

System.in

est le flux d'entrée standard qui est déjà ouvert et prêt à fournir des données d'entrée. Typiquement, ce flux correspond à une entrée au clavier.

    Scanner userInputScanner = new Scanner(System.in);

1514756 3
1514756 3

Étape 3. Lisez les différents types de données d'entrée saisies par l'utilisateur

La classe Scanner prend en charge l'obtention de primitives telles que int, byte, short, long en plus d'obtenir des chaînes.

  • Voici quelques méthodes disponibles via la classe Scanner:

    • Lire un octet -

      octet suivant()

    • Lire un court -

      suivantCourt()

    • Lire un int -

      suivantEntier()

    • Lire un long -

      suivantLong()

    • Lire un flotteur -

      suivantFloat()

    • Lire un double -

      suivantDouble()

    • Lire un booléen -

      suivantBooléen()

    • Lire une ligne complète -

      nextLine()

    • Lire un mot -

      Suivant()

  • Voici un exemple de programme qui utilise différentes méthodes de la classe Scanner pour obtenir différents types d'entrée:

      importer java.util. Scanner; public class ScannerExample { public static void main(String args) { // Lancer un nouveau Scanner Scanner userInputScanner = new Scanner(System.in); // Test de nextLine(); System.out.println("\nQuel est votre nom ? "); Nom de chaîne = userInputScanner.nextLine(); // Test de nextInt(); System.out.print("Combien de chats avez-vous ? "); int numberOfCats = userInputScanner.nextInt(); // Test de nextDouble(); System.out.print("Combien d'argent est dans votre portefeuille ? $"); double moneyInWallet = userInputScanner.nextDouble(); System.out.println("\nBonjour " + nom + " ! Vous avez " + numberOfCats + (numberOfCats > 1 ? " cats": " cat") + " et $" + moneyInWallet + " dans votre portefeuille.\n"); } }

Méthode 2 sur 2: Gestion des exceptions

1514756 4
1514756 4

Étape 1. Gérer les exceptions d'entrée

Un

InputMismatchException

est levée lorsque l'utilisateur entre des données qui ne correspondent pas au type demandé. Par exemple, si l'utilisateur entre une chaîne lorsqu'un int est demandé, le programme lancera un

InputMismatchException

et sortie. Il existe plusieurs façons de gérer cette exception et de résoudre ce problème afin que votre programme soit infaillible.

1514756 5
1514756 5

Étape 2. Utilisez un bloc try-catch pour gérer le

InputMismatchException

.

    importer java.util. InputMismatchException; importer java.util. Scanner; public class ScannerExample { public static void main(String args) { // Lancer un nouveau Scanner Scanner userInputScanner = new Scanner(System.in); // Test de nextLine(); System.out.print("\nQuel est votre nom ? "); Nom de chaîne = userInputScanner.nextLine(); // Test de nextInt(); booléen validInput = false; int nombreDeChats = 0; while (!validInput) { System.out.print("Combien de chats avez-vous ? "); essayez { numberOfCats = userInputScanner.nextInt(); entrée valide = vrai; } catch (InputMismatchException e) { validInput = false; userInputScanner.nextLine(); } } // Test de nextDouble(); entrée valide = faux; double moneyInWallet = 0.0; while (!validInput) { System.out.print("Combien d'argent est dans votre portefeuille ? $"); essayez { moneyInWallet = userInputScanner.nextDouble(); userInputScanner.nextLine(); entrée valide = vrai; } catch (InputMismatchException e) { validInput = false; userInputScanner.nextLine(); } } System.out.println("\nBonjour " + nom + "! Vous avez " + numberOfCats + (numberOfCats > 1 ? " cats": "cat") + " et $" + moneyInWallet + " dans votre portefeuille.\ n"); } }

  • Notez que nous devons importer

    java.util. InputMismatchException

    afin d'utiliser le

    InputMismatchException

  • classer.
  • Nous utilisons une boucle while pour poser la même question à l'utilisateur jusqu'à ce que l'utilisateur entre la bonne entrée.
  • Ajouter

    userInputScanner.nextLine();

  • dans la partie catch du try-catch garantit que le scanner reconnaît la pression sur la touche "enter" de l'utilisateur et fonctionne comme un moyen d'effacer le tampon d'entrée.
1514756 6
1514756 6

Étape 3. Vous pouvez également rendre la saisie de l'utilisateur infaillible en n'enregistrant que les lignes suivantes du scanner

De cette façon, nous pouvons nous assurer que tout ce que le scanner renvoie est un objet String et ne créera aucune exception. Ensuite, pour convertir les chaînes en entiers ou en doubles, nous pouvons utiliser les classes Integer et Double wrapper.

    importer java.util. Scanner; public class ScannerExample { public static void main(String args) { // Lancer un nouveau Scanner Scanner userInputScanner = new Scanner(System.in); // Test de nextLine(); System.out.print("\nQuel est votre nom ? "); Nom de chaîne = userInputScanner.nextLine(); // Test de nextInt(); booléen validInput = false; int nombreDeChats = 0; while (!validInput) { System.out.print("Combien de chats avez-vous ? "); String input = userInputScanner.nextLine(); try { numberOfCats = Integer.parseInt(input); entrée valide = vrai; } catch (NumberFormatException e) { validInput = false; } } // Test de nextDouble(); entrée valide = faux; double moneyInWallet = 0.0; while (!validInput) { System.out.print("Combien d'argent est dans votre portefeuille ? $"); String input = userInputScanner.nextLine(); essayez { moneyInWallet = Double.parseDouble(input); entrée valide = vrai; } catch (NumberFormatException e) { validInput = false; } } System.out.println("\nBonjour " + nom + "! Vous avez " + numberOfCats + (numberOfCats > 1 ? " cats": "cat") + " et $" + moneyInWallet + " dans votre portefeuille.\ n"); } }

  • Notez qu'ici nous n'avons pas eu à importer le

    NumberFormatException

  • car il fait partie du package java.lang, ce qui signifie qu'il est intégré.
  • Nous n'avons pas non plus eu à vider le tampon en utilisant

    userInputScanner.nextLine();

  • dans la partie catch du try-catch.

Des astuces

  • Consultez l'API Scanner pour plus d'informations sur l'utilisation de la classe Scanner.
  • Utilisez toujours.next() au lieu de.nextLine() pour lire le mot suivant, car.nextLine() peut être bogué.

Conseillé: