CodeGym /Blog Java /Random-FR /Méthode Scanner nextLine() en Java
John Squirrels
Niveau 41
San Francisco

Méthode Scanner nextLine() en Java

Publié dans le groupe Random-FR
Scanner , une classe du langage de programmation Java qui peut analyser les types primitifs et les chaînes à l'aide d'expressions régulières. La méthode scanner nextLine() en Java déplace ce scanner au-delà de la ligne actuelle et renvoie l'entrée ignorée. En savoir plus sur nextLine() et Scanner plus loin dans cet article.

En bref sur la classe Scanner et son fonctionnement

En gros, la classe java.util.Scanner vous permet de lire les entrées de diverses sources, y compris la console. Il ressemble vraiment à un scanner classique. Ce périphérique matériel a une architecture complexe, mais il est assez simple de décrire son fonctionnement. Le scanner lit une date qu'un utilisateur y met, comme des papiers, et conserve les données en mémoire comme une image ou un fichier PDF. Le scanner Java, tout comme un vrai scanner, lit les données de la source que vous spécifiez. Par exemple, depuis une chaîne, depuis un fichier, depuis une console. Ensuite, il reconnaît ces informations et les traite selon les besoins. Par exemple, le programme demande de saisir certaines données depuis la console et les lit ou veut les lire à partir d'un fichier. Pour cette opération, le scanner dispose de plusieurs méthodes combinées au mot « suivant ». Tels que next() , nextLine() , nextInt() , nextDouble() .

Méthode NextLine()

Comme nous l'avons dit ci-dessus, l'objet du scanner divise l'entrée en jetons en utilisant le modèle de délimiteur, des espaces par défaut, mais il peut être remplacé par une chaîne ( java.lang.String ) ou une expression régulière ( java.util.regex. Modèle ). Les jetons résultants peuvent ensuite être convertis en valeurs de différents types à l’aide de diverses méthodes suivantes. La méthode Scanner nextLine() en Java fait avancer ce scanner au-delà de la ligne actuelle et renvoie l'entrée qui a été ignorée. Général next() trouve et renvoie le prochain jeton complet de ce scanner. La méthode nextLine() continue de rechercher dans l'entrée un séparateur de ligne, elle peut donc mettre en mémoire tampon toutes les entrées recherchant une ligne à sauter s'il n'y a pas de séparateurs de ligne. Cette méthode génère les exceptions suivantes :
  • NoSuchElementException : lancé si aucune ligne n'a été trouvée
  • IllegalStateException : lancé si ce scanner est fermé

exemple nextLine()

Disons que nous voulons que l'utilisateur saisisse n'importe quel mot ou expression dans la console, et nous pourrions lui montrer quel mot ou quelle expression il a saisi.
import java.util.Scanner;
//…scanner.nextLine() example
public class ScannerTest {
   public static void main(String[] args) {
       Scanner scan = new Scanner(System.in);
       System.out.println("Enter any phrase and I'll repeat it!... ");
      //here we are reading the next line:
       String sentence = scan.nextLine();
       System.out.println(sentence);
   }
}
Le résultat peut être par exemple le suivant :
Entrez n'importe quelle phrase et je la répéterai !... voici ma phrase voici ma phrase
Si vous utilisez la méthode next() au lieu de nextLine() , vous n'obtiendrez que le premier mot de votre phrase.
Entrez n'importe quelle phrase et je la répéterai !... voici ma phrase ici
Prenons un exemple de méthode de scanner nextLine() fonctionnelle pour lire à partir d'un fichier. Pour cet exemple, j'ai créé un fichier txt myTest.txt. Il y a deux lignes dans ce fichier :
mon fichier de test et ma prochaine ligne est ici
Voici un programme qui lit deux lignes d'un fichier.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ScannerTest {

   public static void main(String[] args) throws FileNotFoundException {
       Scanner scanner = new Scanner(new File("d://myTest.txt"));

       String textFromFile1 = scanner.nextLine();
       String textFromFile2 = scanner.nextLine();
       System.out.println(textFromFile1);
       System.out.println(textFromFile2);
       scanner.close();

   }
}
Le résultat est :
mon fichier de test et ma prochaine ligne est ici
Si votre chemin d'accès au fichier est erroné ou si le fichier portant ce nom n'existe pas, vous obtiendrez le résultat suivant :
Exception dans le thread "principal" java.io.FileNotFoundException : d:\myTest.txt sur java.base/java.io.FileInputStream.open0 (méthode native) sur java.base/java.io.FileInputStream.open (FileInputStream.java :213) sur java.base/java.io.FileInputStream.<init>(FileInputStream.java:155) sur java.base/java.util.Scanner.<init>(Scanner.java:639) sur ScannerTest.main( ScannerTest.java : 8)
Si le programme a trouvé votre fichier, mais qu'il est vide, vous obtiendrez NoSuchElementException :
Exception dans le thread "main" java.util.NoSuchElementException : aucune ligne trouvée dans java.base/java.util.Scanner.nextLine(Scanner.java:1651) dans ScannerTest.main(ScannerTest.java:10)
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION