私はScanner
に関する具体的な問題があり、その入力方法はSystem.in
です。Javaマルチラインスキャナ入力
私がしたいこと:System.in
から与えられた1つの入力を読む必要があります。問題は、この入力が複数の行を持つ可能性があることです(入力には多くの場合、\n
文字を使用できます)。
私が試した明白なことがScanner.nextLine()
方法であるが、勿論、これはすべてのデータを読んでいないだろう:私が試した何
。私が試した次のことはこれです:
Scanner sc = new Scanner(System.in);
List<String> data = new ArrayList<>();
while(sc.hasNextLine()){
String line = sc.nextLine();
if(line.isEmpty()){
break;
}
data.add(line);
}
しかし、これはまた、多くのデータをスキップします - 例えば、与えられたテキストの途中に空行があるとき。
また、break;
のステートメントを削除しようとしましたが、while(sc.hasNextLine())
ループが壊れることを願っていますが、スキャナがデータを待つため、これは起こりません。
これはJavaで実行できますか?お時間をいただきありがとうございます
ループ自体を破る_will_。あなたはそれに行末の文字を付ける必要があります。 – Sweeper
おそらくこれは解決策ですか? https://stackoverflow.com/a/42429171/3959856 –