アプリ版:「スタンプのみでお礼する」機能のリリースについて

javaで文中の改行のみを省くことは可能でしょうか?

<例>
置換前:
今日は台風で\n
学校が休みになった。\n
\n
そのため、\n
家で遊んでいた。

置換後:
今日は台風で学校が休みになった。\n
\n
そのため、家で遊んでいた。

・・・単純に改行コード(\n)をなくすだけだと、全て1行になってしまいます。
文字と文字に挟まれた改行コードのみ、空文字に置換したいと思っています。
replaceAll関数の正規表現を駆使するも、なかなかうまく行きません。
一見、簡単なようでとても難しいです。

どなたか、わかりますでしょうか?

A 回答 (1件)

改行コード以外に前後を挟まれた改行コードのみ削除するイメージでいけるかと思います。


str = str.replaceAll("(.)\n(.)","$1$2");

<サンプルコード>
String str = new String("今日は台風で\n学校が休みになった。\n\nそのため、\n家で遊んでいた。");
System.out.println("変換前");
System.out.println(str);
System.out.println("");
str = str.replaceAll("(.)\n(.)","$1$2");
System.out.println("変換後");
System.out.println(str);

これで一応は要望されている結果にはなるかと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!