首页 > Java > java教程 > 正文

读取输入直到 EOF(文件结束)并轻松地对行进行编号 | Java 编程竞赛

王林
发布: 2024-09-03 13:08:01
原创
840 人浏览过

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

如何在 Java 中读取输入直到文件结尾 (EOF)

在 Java 中处理输入时,可能会出现您不知道要提前读取的行数的情况。这在编码挑战或从文件或流读取直到最后的场景中很常见。在这篇文章中,我将向您展示一种使用 Java 处理此问题的简单方法。

问题概述

想象一下,您收到了未知数量的行作为输入。您的任务是读取所有行,直到文件结尾 (EOF) 并打印每一行,并以其行号为前缀。

输入/输出如下所示:

输入:

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 方法

Java 通过 Scanner 类及其 hasNext() 方法提供了一种方便的方法来处理此类问题。此方法允许我们读取输入,直到没有更多数据可供读取 (EOF)。

代码解决方案

让我们直接进入代码:

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();
    }
}
登录后复制

解释

  1. 导入所需的包:我们导入 java.util.Scanner 以使用 Scanner 类来读取输入。

  2. 初始化 Scanner:我们创建一个 Scanner 对象来从标准输入 (System.in) 读取。

  3. 读取直到 EOF:for 循环旨在读取行,直到没有更多输入。条件 sc.hasNext() 检查是否有更多输入要读取。如果有,则使用 sc.nextLine() 读取下一行。

  4. 打印行号:对于读取的每一行,我们都会打印它及其行号。我们使用循环计数器 i,它从 1 开始,并随着每次迭代而递增。

  5. 关闭扫描仪:虽然这里不是绝对必要的,但完成后关闭扫描仪是一个很好的做法,以避免资源泄漏。

要点

  • Java 中的 Scanner 类及其 hasNext() 方法是读取输入直到 EOF 的绝佳工具。
  • 使用 sc.nextLine() 读取每一行输入。
  • 使用简单的计数器跟踪行号。

最后的想法

这种方法简单而有效,可以在 Java 中读取未知行数直到 EOF。它在竞争性编程、文件读取任务或处理数据流的任何情况下都会派上用场。

快乐编码! ?

以上是读取输入直到 EOF(文件结束)并轻松地对行进行编号 | Java 编程竞赛的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!