質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

Q&A

解決済

2回答

5555閲覧

文字列を入力させ続け、何も入力せずEnterを押すと、それまで入力した文字列が全て表示されるプログラムを作りたい。文字列はArrayListで作った可変長配列に格納する。

ssssa

総合スコア39

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

0グッド

0クリップ

投稿2018/09/09 10:37

Java

1import java.io.BufferedReader; 2import java.io.IOException; 3import java.io.InputStreamReader; 4import java.util.ArrayList; 5import java.util.List; 6import java.util.Random; 7public class Problem { 8 9public static void main(String[] args) throws IOException { 10 InputStreamReader isr = new InputStreamReader(System.in); 11 BufferedReader br = new BufferedReader(isr); 12 String buf = br.readLine(); 13 System.out.println(buf); 14 List<Integer> list = new ArrayList<Integer>(); 15 while (true) { 16 Random rnd = new Random(); 17 int v = rnd.nextInt(10); 18 System.out.println("文字列を入力:" + v); 19 if (list.equals("")) { 20 break; 21 } 22 list.add(v); 23 } 24 for (int i = list.size() - 1; i >= 0; i--) { 25 System.out.print(" "); 26 System.out.print(list.get(i)); 27 } 28 } 29 30} 31 32

文字列を入力:apple
文字列を入力:good
文字列を入力:pineapple
文字列を入力:big
文字列を入力:dog
文字列を入力:cowboy
文字列を入力: ← 何も入力せず、Enterを押すと、入力を終える

apple good pineapple big dog cowboy

上記のような結果表示にしたいのですが、無限ループがうまく終了しない状態です。
大変申し訳ございませんが、どなたかご教示いただけないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

最後はArrayListに格納させた文字列を出力するだけなので、拡張for文で実装しました。

java

1import java.util.*; 2 3public class Main { 4 public static void main(String[] args){ 5 6 Scanner sc = new Scanner(System.in); 7 List<String> data = new ArrayList<String>(); 8 9 while(true){ 10 String line = sc.nextLine(); 11 data.add(line); 12 if(line.equals("")){ 13 break; 14 } 15 } 16 for(String text:data){ 17 System.out.print(text + " "); 18 } 19 } 20} 21

投稿2018/09/09 11:57

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ssssa

2018/09/09 13:01

Stars様 ご丁寧で迅速な分かりやすい回答ありがとうございます。理解が深まりました。
guest

0

ベストアンサー

whileループ外で入力読取りしていたので1回しか読取りされていませんでした。
whileループ内で入力読取りさせるように修正しています。
出力順を正順になるように修正。

###出力結果
イメージ説明

java

1import java.io.BufferedReader; 2import java.io.IOException; 3import java.io.InputStreamReader; 4import java.util.ArrayList; 5import java.util.List; 6 7public class memo_qa145687 { 8 public static void main(String[] args) throws IOException { 9 10 List<String> list = new ArrayList<String>(); 11 InputStreamReader isr = new InputStreamReader(System.in); 12 BufferedReader br = new BufferedReader(isr); 13 String buf; 14 15 while (true) { 16 17 System.out.print("文字列を入力:"); 18 buf = br.readLine(); 19 20 if (buf.equals("")) { 21 break; 22 } 23 24 list.add(buf); 25 } 26 27 for (int i = 0; i < list.size(); i++) { 28 System.out.print(list.get(i) + " "); 29 } 30 } 31}

投稿2018/09/09 11:22

編集2018/09/09 13:36
opyon

総合スコア1009

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ssssa

2018/09/09 12:59

opyon様へ 丁寧な回答ありがとうございます。大変恐れ入ります。表示の表記なのですが、1番目の文字から順に回答表記したくこのままだと逆順で表記されてしまいます。for文をfor (int i = list.size(); i <= 6; i++)と書いたのですがエラーになってしまいました. 大変申し訳ございませんが、もしよろしければ何が違うのかご教示願います。
退会済みユーザー

退会済みユーザー

2018/09/09 13:18

@ssssaさんへ for (int i = list.size(); i <= 6; i++)を for (int i = 0; i < list.size(); i++)にするとエラーが解消されると思います。
opyon

2018/09/09 13:37

すでに解決済みかと思いますが、回答のコード内も修正しました。
ssssa

2018/09/09 13:45

回答ありがとうございます。解決できず悩んでました。本当にお恥ずかしい質問をしてしまい申し訳ございません。また、わかりやすく素晴らしい回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問