Maison  >  Article  >  Java  >  Lisez les entrées jusqu'à la fin du fichier (EOF) et numérotez vos lignes sans effort | Programmation compétitive Java

Lisez les entrées jusqu'à la fin du fichier (EOF) et numérotez vos lignes sans effort | Programmation compétitive Java

王林
王林original
2024-09-03 13:08:01842parcourir

Read Input Until EOF (End-of-File) and Number Your Lines Effortlessly | Competitive Programming Java

Comment lire l'entrée jusqu'à la fin du fichier (EOF) en Java

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.

Présentation du problème

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 :

Saisir:

Hello world
I am a file
Read me until end-of-file.

Sortir:

1 Hello world
2 I am a file
3 Read me until end-of-file.

L'approche Java

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).

Solution de code

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();
    }
}

Explication

  1. Importer les packages requis : nous importons java.util.Scanner pour utiliser la classe Scanner pour lire les entrées.

  2. Initialiser le scanner : nous créons un objet Scanner à lire à partir de l'entrée standard (System.in).

  3. 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().

  4. 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.

  5. 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.

Points clés à retenir

  • La classe Scanner en Java, avec sa méthode hasNext(), est un excellent outil pour lire les entrées jusqu'à EOF.
  • Utilisez sc.nextLine() pour lire chaque ligne d'entrée.
  • Gardez une trace du numéro de ligne à l'aide d'un simple compteur.

Pensées finales

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.

Bon codage ! ?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn