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(); } }
必要なパッケージのインポート: 入力の読み取りに Scanner クラスを使用するために、java.util.Scanner をインポートします。
Scanner の初期化: 標準入力 (System.in) から読み取る Scanner オブジェクトを作成します。
EOF まで読み取る: for ループは、入力がなくなるまで行を読み取るように設計されています。条件 sc.hasNext() は、さらに読み取る入力があるかどうかをチェックします。存在する場合は、sc.nextLine().
行番号付きで印刷: 読み取られた各行について、行番号とともに印刷します。 1 から始まり、反復ごとに増加するループ カウンター i を使用します。
スキャナを閉じる: ここで厳密に必要というわけではありませんが、リソース リークを避けるために、作業が完了したらスキャナを閉じることをお勧めします。
このアプローチはシンプルですが、Java で EOF まで未知の行数を読み取る場合に効果的です。これは、競技プログラミング、ファイル読み取りタスク、またはデータのストリームを扱うあらゆる状況で便利です。
以上がEOF (ファイルの終わり) まで入力を読み取り、行に簡単に番号を付ける |競技プログラミング Javaの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。