web-dev-qa-db-ja.com

Java 13テキストブロック* WITHOUT *改行

Java 13 """デリミタ付きの複数行テキストブロック機能がよく知られています。

ただし、埋め込まれた改行なしで段落全体が必要な場合は、繰り返し必要があります。

つまり、次のコードスニペット:

String paragraph =
    """
    aaaa bbbb cccc
    dddd eeee ffff
    gggg hhhh iiii
    """"
System.out.println(paragraph);

あなたが期待するように、以下を生成します:

aaaa bbbb cccc
dddd eeee ffff
gggg hhhh iiii

...通常、これは非常に便利です。しかし私の場合、特に大きな段落の場合、これを生成するために必要です:

aaaa bbbb cccc dddd eeee ffff gggg hhhh iiii

(....そして、後でテキストフローを扱います。)

三重引用符機能に「改行なし」パラメーターを設定する方法はありますか?

12
alife

確かに、Java 13で適切な答えを見つけるのは簡単ではありません(おそらく不可能でさえあります)が、Jorn Verneeは彼の返信で懸念を優雅に述べたと思います(Java 14は許容可能なソリューションを提供します)。

リストされているいくつかの懸念事項をさらに詳しく説明します。

  • Holgerは「「テキストブロック」機能はあまり説得力がない」と述べています。人為的な文字列連結を行う「醜い」コードをたくさん見たので、この機能は間違いなく問題に対処していると思います。一方、このような機能は、乱用の余地を多く残すことに同意する必要があります(「私たちはたくさんのテキストを入れましょうJavaコード内にあるため、これでうまく実行できます! "-次のポイントを参照してください)。
  • 元の質問は「大きな段落」について言及しており、この機能をまったく使用せずに、そのコンテンツをリソースファイルに外部化するようにアドバイスしています。
  • 明快さと特定の側面については「読者には明らかではないため、明白でない意味を持つ構文があります」。それは部分的に正しいです、そして、利用可能な資料が現時点でそれほど大きくない間、それは若干の読書と実験を必要とします。私はこれを見つけました: テキストブロックへのプログラマーのガイド 、これは非常に多くの例を提供します。私もいくつかの例を作成しました。テキストブロックの例はここにあります: TextBlocks.Java -うまくいけば、それらが役立つでしょう。

モデレーターへの注意:この回答はガイドラインに違反している可能性があることを知っています(質問には対応せず、他のユーザーのコメントに返信します)。ただし、進行中のトピックについては議論の余地があるはずです。 (忘れないでください テキストブロックは「2番目のプレビュー」モードです )。

1
Chris T

paragraph.replaceAll("\\n","")があなたのために仕事をしてくれるはずです。

0
Guillaume G