質問編集履歴

2

文法修正

2020/03/21 11:46

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -124,7 +124,7 @@
124
124
 
125
125
  ### 質問
126
126
 
127
- 上記のコードで、`nextLine()`のときにうまくいかないのはなぜでしょうか。
127
+ 上記のコードうまくいかないのはなぜでしょうか。
128
128
 
129
129
  `nextInt()`の部分がなにか関係しているのかなと思うのですが原因がわかりません。
130
130
 

1

ミスで不完全なまま投稿してしまったので修正しました。

2020/03/21 11:46

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  標準入力のケースは以下を想定していて、すべてのケースで通るようにしたいです。
8
8
 
9
- 1行目でN行を指定し
9
+ 1行目でN行の標準出力」のNにあたる部分受け取りその後にN行の入力が続きます。
10
10
 
11
11
  ```
12
12
 
@@ -20,9 +20,27 @@
20
20
 
21
21
  ccc
22
22
 
23
+
24
+
25
+ (期待する出力)
26
+
27
+ aaa
28
+
29
+ bbb
30
+
31
+ ccc
32
+
33
+
34
+
23
35
  【ケース2】
24
36
 
25
37
  1
38
+
39
+ a b c
40
+
41
+
42
+
43
+ (期待する出力)
26
44
 
27
45
  a b c
28
46
 
@@ -30,8 +48,86 @@
30
48
 
31
49
 
32
50
 
51
+ ### 試してみたこと
52
+
53
+
54
+
55
+ 1行ごとに受け取ってそのまま出力するプログラムなので、Scannerの`nextLine()`を利用すればいいと考えました。
56
+
57
+
58
+
33
59
  ```Java
60
+
61
+ import java.util.*;
62
+
63
+
64
+
65
+ public class Main {
66
+
67
+ public static void main(String[] args) {
68
+
69
+ Scanner sc = new Scanner(System.in);
70
+
71
+
72
+
73
+ // N行の入力を受け付ける(Nを決める)
74
+
75
+ int N = sc.nextInt();
76
+
77
+
78
+
79
+ // N行の入力を配列に入れて
80
+
81
+ String inputs[] = new String[N];
82
+
83
+ for(int i = 0; i < inputs.length; i++) {
84
+
85
+ inputs[i] = sc.nextLine();
86
+
87
+ }
88
+
89
+
90
+
91
+ // 配列の中身を順に出力する
92
+
93
+ for(String input_item: inputs) {
94
+
95
+ System.out.println(input_item);
96
+
97
+ }
98
+
99
+ }
100
+
101
+ }
102
+
103
+ ```
104
+
105
+
106
+
107
+ 上記のコードですと、出力が
34
108
 
35
109
 
36
110
 
37
111
  ```
112
+
113
+ aaa
114
+
115
+ bbb
116
+
117
+ ```
118
+
119
+
120
+
121
+ になってしまいます。配列の1つ目の要素が空白?になってしまっているのだと思うんですが......。
122
+
123
+
124
+
125
+ ### 質問
126
+
127
+ 上記のコードで、`nextLine()`のときにうまくいかないのはなぜでしょうか。
128
+
129
+ `nextInt()`の部分がなにか関係しているのかなと思うのですが原因がわかりません。
130
+
131
+
132
+
133
+ それとも私の意図していないところに原因がありますか?