首页 > 解决方案 > 如何将数字转换为特定格式?

问题描述

我想知道是否有办法将自定义屏蔽/格式应用于字符串并获取输出

number:= 12345678

我想将我的号码格式化为特定格式。

func formatNumber(number string) string {
   format:= 123-45 678
   // do something here to format number 
    return formatedNumber
}

标签: stringfunctiongo

解决方案


您的代码示例中有一些误解。计算机中的数字没有格式化,但数字的字符串表示可以。下面的例子

func main() {
    n1 := 12345678                               // type = int
    fmt.Printf("type: %T, value: %d\n", n1, n1)  // outputs "type: int, value: 12345678"
    
    n2 := "12345678"                             // type = string
    fmt.Printf("type: %T, value: %s\n", n2, n2)  // outputs "type: string, value: 12345678"
}

请参阅https://golang.org/pkg/fmt/了解来源%T%d来源%s

要格式化一个数字,我认为你不能得到你想要的。不过有几个选择:

根据您的问题,下面会为您提供类似于您想要的东西。

func main() {
    mynumber := 12345678
    mystring := fmt.Sprintf("%d", mynumber)
    myformattedstring := fmt.Sprintf("%s-%s %s", mystring[:3], mystring[3:5], mystring[5:])
    fmt.Println(myformattedstring)
}

这是带有此代码的游乐场。


推荐阅读