在 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 透過 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(); } }
導入所需的套件:我們導入 java.util.Scanner 以使用 Scanner 類別來讀取輸入。
初始化 Scanner:我們建立一個 Scanner 物件來從標準輸入 (System.in) 讀取。
讀取直到 EOF:for 迴圈旨在讀取行,直到沒有更多輸入。條件 sc.hasNext() 檢查是否有更多輸入要讀取。如果有,則使用 sc.nextLine() 讀取下一行。
列印行號:對於讀取的每一行,我們都會列印它及其行號。我們使用循環計數器 i,它從 1 開始,並隨著每次迭代而遞增。
關閉掃描器:雖然這裡不是絕對必要的,但完成後關閉掃描器是一個很好的做法,以避免資源洩漏。
這種方法簡單而有效,可以在 Java 中讀取未知行數直到 EOF。它在競爭性程式設計、檔案讀取任務或處理資料流的任何情況下都會派上用場。
以上是讀取輸入直到 EOF(檔案結束)並輕鬆地對行進行編號 | Java 程式設計競賽的詳細內容。更多資訊請關注PHP中文網其他相關文章!