我想出了一種將前導(dǎo)零填充到 Go 字符串中的方法。我不確定這是否是你在 Go 中執(zhí)行此操作的方式。在 Go 中是否有正確的方法來做到這一點?這是我想出的,可以在第二個 if 塊中找到。我嘗試谷歌看看它是否有內(nèi)置的東西,但運氣不佳。func integerToStringOfFixedWidth(n int, w int) string { s := strconv.Itoa(n) l := len(s) if l < w { for i := l; i < w; i++ { s = "0" + s } return s } if l > w { return s[l-w:] } return s}對于 n = 1234 且 w = 5,輸出應(yīng)為 integerToStringOfFixedWidth(n, w) = "01234"。
3 回答

尚方寶劍之說
TA貢獻(xiàn)1788條經(jīng)驗 獲得超4個贊
您可以使用 Sprintf/Printf (使用具有相同格式的 Sprintf 打印到字符串):
package main
import (
? ? "fmt"
)
func main() {
? ? // For fixed width
? ? fmt.Printf("%05d", 4)
? ? // Or if you need variable widths:
? ? fmt.Printf("%0*d", 5, 1234)
}

撒科打諢
TA貢獻(xiàn)1934條經(jīng)驗 獲得超2個贊
你可以這樣做:
func integerToStringOfFixedWidth(n, w int) string {
s := fmt.Sprintf(fmt.Sprintf("%%0%dd", w), n)
l := len(s)
if l > w {
return s[l-w:]
}
return s
}

鳳凰求蠱
TA貢獻(xiàn)1825條經(jīng)驗 獲得超4個贊
使用記錄良好且經(jīng)過測試的包,而不是編寫自己的 paddig 代碼。
func?integerToStringOfFixedWidth(n?int,?w?int)?string?{ ????s,?_?:=?leftpad.PadChar(strconv.Itoa(n),?w,?'0') ????????return?s }
- 3 回答
- 0 關(guān)注
- 220 瀏覽
添加回答
舉報
0/150
提交
取消