当前位置: 首页 > 图灵资讯 > 技术篇> 读取输入直到 EOF(文件结束)并轻松地对行进行编号 | Java 编程竞赛

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

来源:图灵教育
时间:2024-09-04 19:36:18

读取输入直到 eof(文件结束)并轻松地对行进行编号 | 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)。

立即学习“Java免费学习笔记(深入);

点击下载“修复打印机驱动工具”;

代码解决方案

让我们直接进入代码:

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 有关编程比赛的详细信息,请多关注图灵教育的其他相关文章!