我需要创建文本文件并能够使用 Go 控制文本是左对齐还是右对齐。我找到了标签编写器,但我不想要专栏。文本需要自由流动。有什么建议么?
1 回答
HUWWW
TA贡献1874条经验 获得超12个赞
您可以在 ASCII 文本文件中执行的格式化种类非常有限。没有 ASCII 控制字符表示文本块将以某种方式对齐。您要么依赖文本查看器将自定义语法解释为格式(请参阅 Markdown 格式),要么添加空格以在每一行上显式创建所需的格式。
对于后者,可以在每行前插入空格来模拟对齐。为此,您需要选择每行固定数量的字符(例如 40 个字符)作为格式设置的基础。请注意,此最大线宽不一定与用户使用的任何文本查看应用程序中的屏幕大小相匹配。
左对齐算法基本上是一种自动换行算法。请参阅最佳自动换行算法?为了那个原因。
右对齐算法再次是自动换行,但有一个中间步骤:首先让自动换行函数将文本拆分为自动换行。然后用等于最大行宽内剩余的字符数的空格数填充每行的开头。
因此,假设您的源文本是“此声明没有任何理由!” 并且您的最大行宽为 15 个字符。左对齐算法将输出如下:
There is no
justification
for this
statement!
...右对齐算法将输出:
There is no
justification
for this
statement!
如果要更改最大线宽,则需要再次运行算法以使用新的最大线宽重排文本。
- 1 回答
- 0 关注
- 92 浏览
添加回答
举报
0/150
提交
取消