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

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

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

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

Q&A

解決済

2回答

4433閲覧

Listの要素を出力するとき、要素ごとに改行したい

Sharifa

総合スコア5

Java

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

0グッド

0クリップ

投稿2021/07/05 02:40

編集2021/07/05 02:47

課題のコーディングなのですが、このまま出力するとList型のままファイルに出力されてしまいます。

例えば、1~20を格納した場合、
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
と出力されます。

これを、

1
2
3
4
5
………
19
20

と出力したいのですが、どのように修正すればよいでしょうか、、、?
formatや"\n"を使って何とか試みたのですが、うまい具合にできませんでした。。。

import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Scanner; public class memo { public static void main(String[] args) { // Scannerを作成 Scanner scan = new Scanner(System.in); // 格納用のListを初期化 ArrayList<String> input = new ArrayList<String>(); try { System.out.println("文字列を繰り返し入力してください"); for (int i = 0; i < 20; i++) { String line = scan.nextLine(); if (!(line.equals("end"))) {// "end"と入力されていない場合の処理 // 入力した文字列をlineに格納 input.add(line); } else {// 上記のif文に当てはまらない場合 System.out.println("入力を終了しました。ファイルに書き込みます。"); scan.close(); break; } } // 上書きモード PrintWriter pwbak = new PrintWriter( new BufferedWriter(new FileWriter("/Users/Owner/OneDrive/java.txt/numbers.bak/"))); pwbak.println(input); // 追記モード PrintWriter pwtxt = new PrintWriter( new BufferedWriter(new FileWriter("/Users/Owner/OneDrive/java.txt/numbers.txt/", true))); pwtxt.println(input); System.out.println(input); pwbak.close(); pwtxt.close(); } catch ( ArrayIndexOutOfBoundsException e) { System.out.println("入力例外が発生しました。ファイルに書き込みます。"); } catch (IOException ex) { ex.printStackTrace(); } } }

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

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

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

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

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

guest

回答2

0

ベストアンサー

diff

1- pwbak.println(input); 2+ for (var v : input) pwbak.println(v); 3 4- pwtxt.println(input); 5- System.out.println(input); 6+ for (var v : input) pwtxt.println(v); 7+ for (var v : input) System.out.println(v);

投稿2021/07/05 04:23

kazuma-s

総合スコア8224

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

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

Sharifa

2021/07/05 04:51

for文による繰り返し出力により、改行して出力することができました! ご回答ありがとうございました!
guest

0

listを要素毎に出力すればいいのでは...

Java

1input.forEach(pwtxt::println);

投稿2021/07/05 03:00

Luice

総合スコア771

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

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

Sharifa

2021/07/05 04:11

pwtxt.println(input); System.out.println(input); の部分を、 pwtxt.println(input.forEach(pwtxt::println)); System.out.println(input.forEach(pwtxt::println)); に書き換えましたが、printlnのところでエラーが起こってしまいました、、、
Luice

2021/07/05 04:13

それは当然そうなると思います。
Luice

2021/07/05 04:34

Strem APIについて理解できてなさそうなので "Java stream API foreach" あたりで検索して理解を深める事をおすすめします。
Sharifa

2021/07/05 04:41

自分の方でも、なぜエラーが起こるのかを説明できるように、forEach()についての仕組みをよく調べておきます。 ご回答ありがとうございました! 高評価押しますね!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問