Golang 的 strconv 包的使用

发布于 2022-06-22 11:47:39 字数 2826 浏览 900 评论 0

strconv 包是 go 中做类型转换的包,可以做各种类型与字符串类型的转换。

布尔值和字符串的转换

使用 FormatBool 将布尔值转化为字符串

true 转化为字符串 true,false 转化为字符串 false

package main

import (
   "fmt"
   "strconv"
)

func main() {
   t := true
   f := false
   fmt.Println(strconv.FormatBool(t))
   fmt.Println(strconv.FormatBool(f))
}

使用 ParseBool 将字符串转化为布尔值

对字符串 1,t, T, TRUE, true, True 六种值转化为布尔值 true,对字符串 0,f,F, False,false,FALSE 六种值转化为布尔值 false,其他值都会返回一个错误

package main

import (
"fmt"
"strconv"
)

func main() {
   fmt.Println(strconv.ParseBool("1"))
   fmt.Println(strconv.ParseBool("t"))
   fmt.Println(strconv.ParseBool("T"))
   fmt.Println(strconv.ParseBool("TRUE"))
   fmt.Println(strconv.ParseBool("True"))
   fmt.Println(strconv.ParseBool("true"))
   fmt.Println(strconv.ParseBool("TrUe"))
}

整数和字符串的转换

将数字转化为字符串

FotmatInt 方法有两个参数

func FormatInt(i int64, base int) string

第二个为基数。

package main

import (
"fmt"
"strconv"
)

func main() {
   v := int64(12)
   fmt.Println(strconv.FormatInt(v, 10))
   fmt.Println(strconv.FormatInt(v, 12))
}

除此之外,还有将无符号的整数转化为字符串的 FormatUnit 方法,同时为了方便常用的 10 进制转换,提供了 Itoa 方法

package main
import ("fmt""strconv")
func main() {
v := int64(98)
fmt.Println(strconv.Itoa(98))
// 等价于
fmt.Println(strconv.FormatInt(v, 10))
}

将字符串转化为数字

ParseInt 有三个参数:

func ParseInt(s string, base int, bitSize int) (i int64, err error)

base 表示进位制(2 到 36),如果 base 为 0,则根据字符串前缀判断(前缀:0x表示16进制;0表示8进制;否则是10 进制),即按照什么进制,来解析给定的整数字符串;参数bitSize 表示的是整数取值范围,或者说整数的具体类型。取值 0、8、16、32 和 64 分别代表 int、int8、int16、int32 和 int64。

如果字符串中包含不是数字,则会转换失败返回一个错误:

package main

import (
"fmt"
"strconv"
)

func main() {
   v := "989898"
   v2 := "9898abc"
   fmt.Println(strconv.ParseInt(v, 10, 32))
   fmt.Println(strconv.ParseInt(v2, 10, 32))
}

除此之外,还有将字符串转化为无符号的整数的 ParseUnit 方法,同时为了方便常用的 10 进制转换,提供了 Atoi 方法

package main

import (
"fmt"
"strconv"
)

func main() {
   v := "98"
   fmt.Println(strconv.Atoi(v))
   // 等价于
   fmt.Println(strconv.ParseInt(v, 10, 0))
}

浮点数和字符串的转化

将浮点数转化为字符串

func FormatFloat(f float64, fmt byte, prec, bitSize int) string

f 为需要转换的 float64 类型的变量,fmt 表示使用 f 表示不使用指数的形式,prec 表示保留几位小数,bitSize 如果为 32,表示是 float32 类型,如果是 64,表示是 float64 类型。

package main
import (
   "strconv"
   "fmt"
)


func main() {
   var num float64 = 3.24
   fmt.Println(strconv.FormatFloat(num, 'f', 10, 64 ))
}

将字符串转化为浮点数

使用 ParseFloat

func ParseFloat(s string, bitSize int) (float64, error)

其中 bitSize 表示转化为 float32 还是 float64:

package main

import (
   "fmt"
   "strconv"
)

func main() {
   var s = "3.24"
   fmt.Println(strconv.ParseFloat(s, 64))
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
24 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文