Go语言中的strconv包提供了一系列字符串转换函数,可以方便地将字符串转换为不同类型的数据,如整型、浮点型、布尔型等。
strconv包的主要函数
strconv包提供了一系列字符串转换函数,其中一些常用的函数如下:
Atoi和ParseInt:将字符串转换为整型
Atoi函数将字符串转换为int类型,如果转换失败,则返回0和错误信息。ParseInt函数将字符串转换为int64类型,并允许指定转换的进制和位数。如果转换失败,则返回0和错误信息。
代码语言:javascript复制package main
import (
"fmt"
"strconv"
)
func main() {
str := "123"
i, err := strconv.Atoi(str)
if err != nil {
fmt.Println("conversion failed")
} else {
fmt.Printf("i is %dn", i)
}
str = "1000000000000000000000000000000000000000000000000000000000000000000000000000000"
i64, err := strconv.ParseInt(str, 10, 64)
if err != nil {
fmt.Println("conversion failed")
} else {
fmt.Printf("i64 is %dn", i64)
}
}
输出结果:
代码语言:javascript复制i is 123
conversion failed
ParseFloat:将字符串转换为浮点型
ParseFloat函数将字符串转换为float64类型,并允许指定转换的位数和精度。如果转换失败,则返回0和错误信息。
代码语言:javascript复制package main
import (
"fmt"
"strconv"
)
func main() {
str := "3.14"
f, err := strconv.ParseFloat(str, 64)
if err != nil {
fmt.Println("conversion failed")
} else {
fmt.Printf("f is %fn", f)
}
}
输出结果:
代码语言:javascript复制f is 3.140000
ParseBool:将字符串转换为布尔型
ParseBool函数将字符串转换为bool类型,只有字符串"true"或"false"可以被转换为布尔型,其他字符串都会转换失败。如果转换失败,则返回false和错误信息。
代码语言:javascript复制package main
import (
"fmt"
"strconv"
)
func main() {
str := "true"
b, err := strconv.ParseBool(str)
if err != nil {
fmt.Println("conversion failed")
} else {
fmt.Printf("b is %tn", b)
}
}
输出结果:
代码语言:javascript复制b is true
Itoa和FormatInt:将整型转换为字符串
Itoa函数将int类型的数据转换为字符串,FormatInt函数将int64类型的数据转换为字符串,并允许指定转换的进制和位数。
代码语言:javascript复制package main
import (
"fmt"
"strconv"
)
func main() {
i := 123
str := strconv.Itoa(i)
fmt.Printf("str is %sn", str)
i64 := int64(123)
str = strconv.FormatInt(i64, 10)
fmt.Printf("str is %sn", str)
}
输出结果:
代码语言:javascript复制str is 123
str is 123