是可能的,用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