是可能的,用fmt.Println("...")
打印一个字符串与中心alignement的壳?如何fmt.Print(“打印在中心”)
回答
只要壳宽是已知值,此代码就会管理文本居中。它不是'像素完美',但我希望它有帮助。
如果我们将其分解,有两位代码可以生成格式字符串,然后填充右边然后左边。
fmt.Sprintf("%%-%ds", w/2) // produces "%-55s" which is pad left string
fmt.Sprintf("%%%ds", w/2) // produces "%55s" which is right pad
所以最后Printf
声明变得
fmt.Printf("%-55s", fmt.Sprintf("%55s", "my string to centre"))
的完整代码:
s := " in the middle"
w := 110 // shell width
fmt.Printf(fmt.Sprintf("%%-%ds", w/2), fmt.Sprintf(fmt.Sprintf("%%%ds", w/2),s))
产生如下:
in the middle
链接打地面:play
我见过。但是,你能解释一下“%% - %ds”吗? Doc说'%% \t字面百分号;不消耗任何价值“究竟意味着什么? '%d是数字'。 – sensorario
已更新,更好地描述了生成格式字符串的代码。 – miltonb
我认为解决方案代码中存在一个错误,因为它没有考虑字符串's'的宽度。请访问https://play.golang.org/p/8L5IfEIKSS查看修改后的游乐场代码。我想你需要用'w'替换第一个'w/2',第二个用'(w + len(s))/ 2'来替换,如下面的答案所示。 – PaSTE
作为更新这一长期问题的回答,发表@miltonb的解决方案,可以在通过使用*
符号从fmt
包提高。从the package documentation:
在printf中,sprintf的,和fprintf,默认行为是每个 格式动词格式化呼叫通过连续的参数。 但是,动词前面的记号[n]表示 第n个单索引参数要被格式化。 在用于宽度或精度的'*'之前的同一个 表示法选择保存该值的参数 。处理括号内的表达式[n]后,后续动词将使用参数n + 1,n + 2等,除非另有指示 。
所以,你可以更换两个fmt.Sprintf
通话提供了更加简洁的格式语句来实现相同的结果:
s := "in the middle"
w := 110 // or whatever
fmt.Sprintf("%[1]*s", -w, fmt.Sprintf("%[1]*s", (w + len(s))/2, s))
关于[n]符号的优秀补充使其更简单 - 总是更好。 – miltonb
- 1. 如何写左右fmt.Print
- 2. 中心打印输出
- 3. 如何在javascript中打印打印区域进行打印
- 4. 这个“打印心脏”程序如何在C中工作?
- 5. 如何在c中打印
- 6. 如何在java中打印\
- 7. 如何打印在java中
- 8. 如何在C中打印?
- 9. 如何在VB中打印?
- 10. 如何在Golang中的文本文件中捕获fmt.Print输出
- 11. 如何在打印
- 12. 核心Java打印声明
- 13. 打印核心数据
- 14. 如何在SELECTED打印机中打印任何文档
- 15. 如何使用打印机API在JAVA中打印用于打印的文本?
- 16. 如何打印中心对齐串用C
- 17. 如何获取div内容以打印8.5x11张纸的中心?
- 18. 如何在c#中打印?我想打印一个表(查询)
- 19. 如何在C#中打印垂直文本? (StringFormat.DirectionVirtical打印下来)
- 20. 如何在TSC打印机中打印图像
- 21. 如何在c#中打印字符串到打印机?
- 22. 如何在Java中打印收据打印机的支票?
- 23. 如何在单张打印中打印两个webelement?
- 24. 如何在Python中打印调试打印?
- 25. 如何在Qt中打印文本文件到打印机?
- 26. 如何在php中使用打印机打印HTML内容?
- 27. 如何在android中使用斑马打印机进行打印?
- 28. 如何在指定的打印机中打印Jasper Reports?
- 29. 如何在Qt5中打印PDF到打印机
- 30. 如何在存储的打印中打印返回值?
那么你知道shell的宽度还是你需要解决的问题的一部分? – miltonb
这可以告诉你的宽度和高度:http://stackoverflow.com/questions/263890/how-do-i-find-the-width-height-of-a-terminal-window – miltonb
@miltonb,你的链接是对于bash,...我可以使用bash吗? – sensorario