勉強はじめたばかりの初心者です。
Javaの練習問題で「N行の標準入力を受けてそのまま標準出力する」プログラムを書いています。
標準入力のケースは以下を想定していて、すべてのケースで通るようにしたいです。
1行目で「N行の標準出力」のNにあたる部分を受け取り、その後にN行の入力が続きます。
【ケース1】 3 aaa bbb ccc (期待する出力) aaa bbb ccc 【ケース2】 1 a b c (期待する出力) a b c
試してみたこと
1行ごとに受け取ってそのまま出力するプログラムなので、ScannerのnextLine()
を利用すればいいと考えました。
Java
1import java.util.*; 2 3public class Main { 4 public static void main(String[] args) { 5 Scanner sc = new Scanner(System.in); 6 7 // N行の入力を受け付ける(Nを決める) 8 int N = sc.nextInt(); 9 10 // N行の入力を配列に入れて 11 String inputs[] = new String[N]; 12 for(int i = 0; i < inputs.length; i++) { 13 inputs[i] = sc.nextLine(); 14 } 15 16 // 配列の中身を順に出力する 17 for(String input_item: inputs) { 18 System.out.println(input_item); 19 } 20 } 21}
上記のコードですと、出力が
aaa bbb
になってしまいます。配列の1つ目の要素が空白?になってしまっているのだと思うんですが......。
質問
上記のコードがうまくいかないのはなぜでしょうか。
nextInt()
の部分がなにか関係しているのかなと思うのですが原因がわかりません。
それとも私の意図していないところに原因がありますか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/03/21 12:41