Lorsque vous traitez des entrées en Java, il peut arriver que vous ne connaissiez pas à l'avance le nombre de lignes que vous allez lire. Ceci est courant dans les défis de codage ou les scénarios dans lesquels vous lisez un fichier ou un flux jusqu'à la fin. Dans cet article, je vais vous montrer un moyen simple de gérer cela en utilisant Java.
Imaginez que vous receviez un nombre inconnu de lignes en entrée. Votre tâche est de lire toutes les lignes jusqu'à la fin du fichier (EOF) et d'imprimer chaque ligne, préfixée par son numéro de ligne.
Voici à quoi ressemble l'entrée/sortie :
Hello world I am a file Read me until end-of-file.
1 Hello world 2 I am a file 3 Read me until end-of-file.
Java fournit un moyen pratique de gérer de tels problèmes avec la classe Scanner et sa méthode hasNext(). Cette méthode nous permet de lire les entrées jusqu'à ce qu'il n'y ait plus de données à lire (EOF).
Plongeons directement dans le code :
import java.io.*; import java.util.*; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); for (int i = 1; sc.hasNext(); i++) { String line = sc.nextLine(); System.out.println(i + " " + line); } sc.close(); } }
Importer les packages requis : nous importons java.util.Scanner pour utiliser la classe Scanner pour lire les entrées.
Initialiser le scanner : nous créons un objet Scanner à lire à partir de l'entrée standard (System.in).
Lire jusqu'à EOF : la boucle for est conçue pour lire les lignes jusqu'à ce qu'il n'y ait plus d'entrée. La condition sc.hasNext() vérifie s'il y a plus d'entrées à lire. Si tel est le cas, il lit la ligne suivante avec sc.nextLine().
Imprimer avec le numéro de ligne : pour chaque ligne lue, nous l'imprimons avec son numéro de ligne. Nous utilisons un compteur de boucles i qui commence à 1 et s'incrémente à chaque itération.
Fermer le scanner : bien que cela ne soit pas strictement nécessaire ici, il est recommandé de fermer le scanner lorsque vous avez terminé pour éviter les fuites de ressources.
Cette approche est simple mais efficace pour lire un nombre inconnu de lignes jusqu'à EOF en Java. Cela s'avère utile lors de la programmation compétitive, des tâches de lecture de fichiers ou de toute situation dans laquelle vous avez affaire à des flux de données.
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!