21

Javaで入力を1行ずつ読み取るにはどうすればよいですか? 私は検索しましたが、これまでのところ私はこれを持っています:

import java.util.Scanner;

public class MatrixReader {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        while (input.hasNext()) {
            System.out.print(input.nextLine());
        }
    }

これの問題は、最後の行を読み取らないことです。だから私が入力した場合

 10 5 4 20
 11 6 55 3
 9 33 27 16

その出力は

10 5 4 20 11 6 55 3
4

3 に答える 3

18

理想的には、最終的な println() を追加する必要があります。これは、デフォルトで System.out が改行が送信されたときにのみフラッシュする PrintStream を使用するためです。Java で System.out.flush() を呼び出すタイミングと理由を参照してください。

while (input.hasNext()) {
    System.out.print(input.nextLine());
}
System.out.println();

あなたの問題には他の理由が考えられますが。

于 2012-08-07T08:41:26.190 に答える
4

以前に投稿された提案には、タイプミス (hasNextLine スペル) と改行印刷 (各行に println が必要) の問題があります。以下は訂正版です --

import java.util.Scanner;

public class XXXX {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        while (input.hasNextLine()){
            System.out.println(input.nextLine());
        }
    }
}
于 2014-07-16T03:05:51.490 に答える
1

hasnextLine()メソッドを使用してみてください。

while (input.hasnextLine()){


    System.out.print(input.nextLine());


 }
于 2012-08-07T08:57:54.710 に答える