我有一个对话框实现,它从用户那里接收一段文本,我想以视觉上令人愉悦的方式将其格式化为多行。用户可以在我也想解释的字符串中包含他们自己的换行符。
有没有人知道伪代码或其他公开可用的东西我可以用作编码这种算法的参考?
我有一个对话框实现,它从用户那里接收一段文本,我想以视觉上令人愉悦的方式将其格式化为多行。用户可以在我也想解释的字符串中包含他们自己的换行符。
有没有人知道伪代码或其他公开可用的东西我可以用作编码这种算法的参考?
如果您的意思是基本的自动换行,我发现这篇文章读起来很有趣。如果你在谈论连字符、完全对齐和字距调整……我现在是空的。
如果您可以接受随机连字符,那么解决方案就很简单了。
只是在自动换行边界上切一个空格很容易。
wordwrap(line_length, input_string, output_string_list):
offset = backward_search_for_space( input_string + line_length )
if offset is zero ## a word taking more than a line !!
offset = forward_search(input_string )
append line_length[0:offset] to ouptput_string_list
if input_string is not null
wordwrap( line_length, input_string + offset, string_list)
如果您想要非随机连字(即允许未知,不允许字节 unk-own),则需要保留连字词列表或规则集,并修改上述算法
如果你想要“等间距”,那么在上面的算法之后,你需要取小于 line_length 的行,并增加行中间的空格。容易做
如果您的字体是可变宽度的,您需要以物理测量单位而不是字符数来实现算法。这也很容易做到。将维护一个“宽度”数组,并计算 line_length 检查。