入力が
みかん
りんご
パイナップル
のように一度に複数行で与えられたときにどのように配列に代入すればよいでしょうか?
上の例では
要素番号0にみかん、要素番号1にりんご、要素番号3にパイナップルを代入したいです。
また入力される行数が不明な場合はどのような標準入力のコードを書けばよいのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
数が未定の要素を扱う場合は、配列ではなく、リストを使った方が便利です。
配列の代わりに使えるリストには、ArrayList
というクラスがあります。
標準入力では、どの入力が終了なのかを決めておく必要があります。
例えば、何も入力しないか、有効な文字が入力されなかった場合は、ループを終了する、のような制御にします。
投稿2016/02/19 06:55
編集2016/02/19 07:37総合スコア9388
0
既にある回答の内容をコードを作成してみました。
Mainx.java
java
1import java.util.ArrayList; 2import java.util.Scanner; 3 4public class Mainx { 5 public static void main(String[] args) { 6 ArrayList<String> lines = new ArrayList<String>(); 7 8 Scanner in = new Scanner(System.in); 9 while (in.hasNextLine()) { 10 String line = in.nextLine(); 11 lines.add(line); 12 } 13 14 int num = 1; 15 for (String line : lines) { 16 System.out.println(String.format("%3d:\t%s", num++, line)); 17 } 18 } 19}
実行例:
$ cat test.txt みかん りんご パイナップル $ javac Mainx.java $ java Mainx < test.txt 1: みかん 2: りんご 3: パイナップル // 以下はコンソールから直接 入力する例。Ctrl-D で入力終了になります。 $ java Mainx A B <--- ここで Ctrl-D を入れる 1: A 2: B
投稿2016/02/19 14:02
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ScannerクラスのnextLineメソッドで1行読み込めるので、それをScanner.hasNext()==falseになるまで繰り返し読みこめばできると思いますよ
投稿2016/02/19 06:45
総合スコア30
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/19 07:20
2016/02/19 07:44
2016/02/19 07:54