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

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

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

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

Q&A

解決済

2回答

4259閲覧

文字列を1行毎に改行するにはどうすれば良いでしょうか?

ta.tatu

総合スコア12

Java

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

0グッド

0クリップ

投稿2019/12/09 11:33

public static void main(String[] args) { ArrayList<String>lines=lineSeparatedString("1行目。\n2行目。\n3行目。\n4行目。\n\n5行目。\n"); for(String line : lines) { System.out.println(line); } } private static ArrayList<String> lineSeparatedString(String string) { ArrayList<String> kg=new ArrayList<String>(); int count=0; for(int i=0; i<string.length(); i++){ if(string.substring(i,i+1).equals("\n")){ if(count!=0){ kg.add(string.substring(i-count,i)); count=0; } else{ kg.add(string.substring(i,i+1));; } } else{ count++; } } return kg; } } コード

他にやり方有りますか?
出力はこうなります!
1行目。
2行目。
3行目。
4行目。

5行目
他にやり方有れば教えてほしいです。

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

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

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

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

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

LouiS0616

2019/12/09 11:35

System.out.println("1行目。\n2行目。\n3行目。\n4行目。\n\n5行目。\n") では駄目なのですか?
ta.tatu

2019/12/09 11:37

ArrayList<String>lines=lineSeparatedString("1行目。\n2行目。\n3行目。\n4行目。\n\n5行目。\n"); for(String line : lines) を使うのが条件です。
guest

回答2

0

ベストアンサー

方法1

Java

1String src = "1行目。\n2行目。\n3行目。\n4行目。\n\n5行目。\n"; 2System.out.println(src);

方法2

Java

1String src = "1行目。\n2行目。\n3行目。\n4行目。\n\n5行目。\n"; 2 3for(String line: src.split("\n")) { 4 System.out.println(line); 5}

ArrayList<String>lines=lineSeparatedString("1行目。\n2行目。\n3行目。\n4行目。\n\n5行目。\n");

for(String line : lines)
を使うのが条件です。

Java

1static ArrayList<String> lineSeparatedString(String string) { 2 return new ArrayList<String>(List.of(string.split("\n"))); 3}

投稿2019/12/09 11:37

編集2019/12/09 11:43
LouiS0616

総合スコア35660

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

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

ta.tatu

2019/12/09 11:59

ありがとうございます。参考になりました。
guest

0

string が \n で終了していない場合は、出力結果の最後も改行しないようにしてみました。

Sample.java

java

1package teratail; 2 3import java.util.ArrayList; 4 5public class Sample { 6 static final char NEW_LINE = '\n'; 7 8 public static void main(String[] args) { 9 ArrayList<String> lines = lineSeparatedString("1行目。\n2行目。\n3行目。\n4行目。\n\n5行目。\n改行なし"); 10 for (String line : lines) { 11 System.out.print(line); 12 } 13 System.out.println("--- End Of Data ---"); 14 } 15 16 private static ArrayList<String> lineSeparatedString(String string) { 17 ArrayList<String> lines = new ArrayList<String>(); 18 String line = ""; 19 for (char c : string.toCharArray()) { 20 line += c; 21 if (c == NEW_LINE) { 22 lines.add(line); 23 line = ""; 24 } 25 } 26 if (line.length() > 0) { 27 lines.add(line); 28 } 29 return lines; 30 } 31}

実行例
イメージ説明

投稿2019/12/09 13:07

katoy

総合スコア22324

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

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

ta.tatu

2019/12/10 08:08

ありがとうございます。参考にします。
ta.tatu

2019/12/10 08:33

因みに「。」で改行して¥nを無視することは出来るのかな?
katoy

2019/12/10 15:12

\n で split してから、 。 を 。\n に replace すればよいかも。
ta.tatu

2019/12/15 13:23

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問