Javaで行ごとに入力を読み取るにはどうすればよいですか?私は検索し、これまでのところこれを持っています:
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
デフォルトでは、System.outは改行が送信されたときにのみフラッシュするPrintStreamを使用するため、理想的には最後のprintln()を追加する必要があります。 JavaでSystem.out.flush()を呼び出すタイミングと理由を参照してください
while (input.hasNext()) {
System.out.print(input.nextLine());
}
System.out.println();
問題には他の理由が考えられますが。
以前に投稿された提案には、タイプミス(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());
}
}
}
hasnextLine()
メソッドを使用してみてください。
while (input.hasnextLine()){
System.out.print(input.nextLine());
}