最初の回答のコメントで明確になった質問に回答するには:
読み取りたい行ごとに、Scanner の nextLine() メソッドを 1 回呼び出す必要があります。これはループで実現できます。必然的に遭遇する問題は、「結果の配列がどうあるべきかを知るにはどうすればよいですか?」ということです。答えは、入力自体で指定しないとわからないということです。プログラムの入力仕様を変更して、次のように読み取る行数を要求できます。
3
One Two Three
Four Five
Six Seven Eight
そして、これで入力を読むことができます:
Scanner s = new Scanner(System.in);
int numberOfLinesToRead = new Integer(s.nextLine());
String[] result = new String[numberOfLinesToRead];
String line = "";
for(int i = 0; i < numberOfLinesToRead; i++) { // this loop will be run 3 times, as specified in the first line of input
result[i] = s.nextLine(); // each line of the input will be placed into the array.
}
または、 ArrayListと呼ばれるより高度なデータ構造を使用することもできます。ArrayList には、作成時に長さが設定されていません。必要に応じて情報を追加するだけでよいため、読み取る入力の量がわからない場合に入力を読み取るのに最適です。たとえば、元の例の入力を使用した場合:
one two trhee
four five six
seven eight nine
次のコードで入力を読み取ることができます。
Scanner s = new Scanner(System.in);
ArrayList<String> result = new ArrayList<String>();
String line = "";
while((line = s.nextLine()) != null) {
result.add(line);
}
したがって、固定長の配列を作成するのではなく、入力で遭遇したときに ArrayList に各行を単純に .add() することができます。ArrayList を使用する前に、ArrayList について詳しく読むことをお勧めします。
tl;dr: ループを使用して、読み取りたい行ごとに next() または nextLine() を呼び出します。
ループの詳細: Java ループ