私のシステムは文字列メッセージを受け取ります。差出人は私の受信前にワードラップを適用します. 送信システムのワード ラッピング アルゴリズムの 1 行あたりの最大文字数がわかっていると仮定すると、意味のある (ユーザーが挿入した) 改行を維持しながら、テキストを正しくアンラップできますか?
たとえば、ここにいくつかのテキストがあります。この例では*
、ユーザーが挿入した意味のある改行を a で¬
示し、ワード ラッピング アルゴリズム (システム) で挿入された改行を a で示します。
入力
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed in elit¬
vitae rutrum. Mauris in fringilla nulla, id rutrum augue.*
Sed non venenatis diam. Nam porta diam eget ante tincidunt ornare. Nulla¬
iaculis auctor. Pellentesque nec diam id quam gravida sollicitudin. Donec¬
dictum libero vitae.*
*
Venenatis eleifend vestibulum ante ipsum primis in faucibus orci luctus et*
*
Ultrices posuere cubilia Curae; Quisque vitae tempus odio.
最終的に私がやりたいことは、ユーザーが挿入した意味のある改行を維持しながら、テキストを「ラップ解除」することです。
期待される出力
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed in elit vitae rutrum. Mauris in fringilla nulla, id rutrum augue.*
Sed non venenatis diam. Nam porta diam eget ante tincidunt ornare. Nulla iaculis auctor. Pellentesque nec diam id quam gravida sollicitudin. Donec dictum libero vitae.*
*
Venenatis eleifend vestibulum ante ipsum primis in faucibus orci luctus et*
*
Ultrices posuere cubilia Curae; Quisque vitae tempus odio.
ご覧のとおり、アンラップ アルゴリズムは、最初に各改行を意味のあるものとして分類するか、システムが挿入されたものとして分類します。現在の行の文字数と次の行の最初の単語の文字数を調べることで、かなり近づくことができます。Venenatis
ただし、システムが挿入されたとして始まる文の改行を分類するため、これは完全ではありません。
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed in elit vitae rutrum. Mauris in fringilla nulla, id rutrum augue.*
Sed non venenatis diam. Nam porta diam eget ante tincidunt ornare. Nulla iaculis auctor. Pellentesque nec diam id quam gravida sollicitudin. Donec dictum libero vitae.*
*
Venenatis eleifend vestibulum ante ipsum primis in faucibus orci luctus et*
Ultrices posuere cubilia Curae; Quisque vitae tempus odio.
洞察をありがとう、ピート