我的系统收到一条字符串消息。发件人在我的收据之前应用了自动换行。假设发送系统的自动换行算法每行的最大字符数是已知的,是否可以在保留有意义的(用户插入的)换行符的同时正确展开文本?
例如,这里有一些文本。在示例中,我们将让 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.
感谢您的任何见解,皮特