Maison >Java >javaDidacticiel >Comment « scanner.nextLine() » de Java gère-t-il les entrées, en particulier dans les boucles ?
Utilisation de scanner.nextLine()
En Java, la méthode nextLine() de la classe java.util.Scanner lit une seule ligne de texte à partir d’un flux. Il est couramment utilisé pour lire les entrées de l'utilisateur.
Considérez les exemples suivants :
Exemple 1 : Lecture d'une seule ligne
import java.util.Scanner; class Test { public void menu() { Scanner scanner = new Scanner(System.in); System.out.print("Enter a sentence:\t"); String sentence = scanner.nextLine(); System.out.print("Enter an index:\t"); int index = scanner.nextInt(); System.out.println("\nYour sentence:\t" + sentence); System.out.println("Your index:\t" + index); } }
Dans cet exemple, la méthode nextLine() lit la saisie de la phrase par l'utilisateur. Il attend correctement que l'utilisateur saisisse une valeur avant de continuer à lire l'index.
Exemple 2 : Lecture en boucle
// Example 2 import java.util.Scanner; class Test { public void menu() { Scanner scanner = new Scanner(System.in); while (true) { System.out.println("\nMenu Options\n"); System.out.println("(1) - do this"); System.out.println("(2) - quit"); System.out.print("Please enter your selection:\t"); int selection = scanner.nextInt(); if (selection == 1) { System.out.print("Enter a sentence:\t"); String sentence = scanner.nextLine(); System.out.print("Enter an index:\t"); int index = scanner.nextInt(); System.out.println("\nYour sentence:\t" + sentence); System.out.println("Your index:\t" + index); } else if (selection == 2) { break; } else { System.out.print("Invalid input. Please try again: "); scanner.nextLine(); } } } }
Dans cet exemple, le Le problème où la méthode nextLine() ne lit pas l'entrée dans la boucle est résolu en appelant explicitement scanner.nextLine() après avoir lu l'entier de sélection. Cela garantit que tous les caractères restants dans le tampon d'entrée sont supprimés, permettant ainsi à l'appel nextLine() de la phrase de fonctionner correctement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!