strconv
包的常用方法
文章目录:
文章目录
1.strconv
的简介以及常用方法的汇总
strconv
是 Go 语言标准库中的一个包,用于进行基本数据类型和字符串之间的转换。以下是strconv
包中常用的方法:
Atoi
和Itoa
:Atoi
函数用于将字符串转换为整数类型,Itoa
函数则用于将整数类型转换为字符串类型。Parse
系列函数:包括ParseInt
、ParseBool
和ParseFloat
等函数,用于将字符串解析为指定类型的值。Format
系列函数:包括FormatInt
、FormatBool
和FormatFloat
等函数,用于将基本数据类型转换为字符串类型。Append
系列函数:包括AppendInt
、AppendBool
和AppendFloat
等函数,用于将基本数据类型追加到已存在的数组中。
2.strconv
常用方法的实际案例学习
(1)Atoi
与Ttoa
strconv.Atoi()
:将字符串转换为整数
str := "123"
num, err := strconv.Atoi(str)
if err == nil {
fmt.Printf("num的类型是%T它的值是%v", num, num)
//num的类型是int它的值是123
}
strconv.Itoa()
:将整数转换为字符串。
num := 456
str := strconv.Itoa(num)
fmt.Printf("num的类型是%T它的值是%v", str, str)
//num的类型是string它的值是456
(2)Parse
系列
strconv.ParseInt()
:按照指定进制将字符串转换为整数
str := "1010" //1010为二进制对应的十进制为10
num, err := strconv.ParseInt(str, 2, 64)
if err == nil {
fmt.Println(num)//10
}
strconv.ParseBool()
:将表示布尔值的字符串转换为布尔值。
str := "true"
boolValue, err := strconv.ParseBool(str)
if err == nil {
fmt.Println(boolValue)//true
}
strconv.ParseFloat()
:数用于将字符串转换为浮点数。函数的第二个参数 64
表示转换后的浮点数的精度位数。
str := "3.14"
num, err := strconv.ParseFloat(str, 64)
if err == nil {
fmt.Println(num)//3.14
} else {
fmt.Println("转换出错:", err)
}
(3)Format
系列,都是将参数转换为指定格式的字符串操作
strconv.FormatInt()
:将整数按照指定格式化字符串
a := 789
str := strconv.FormatInt(int64(a), 16)//16表示转化为16进制
fmt.Println(str)//315
strconv.FormatFloat()
:将浮点数格式化为字符串。
num := 3.14
str := strconv.FormatFloat(num, 'f', 2, 64)
fmt.Println(str)//3.14
strconv.FormatFloat(num, 'f', 2, 64)
是括号内各个参数的含义:
num
:要转换的浮点数。fmt
:格式化类型,可选值为'b'
(二进制)、'e'
(科学计数法)、'f'
(十进制无指数)、'g'
(最少计数法表示)。prec
:表示精度,对于'f'
和'g'
格式,代表除[小数点]以外的位数。bitsize
:浮点数类型,32 表示float32
,64 表示float64
。
在默认情况下,strconv.FormatFloat
函数会将浮点数转换为保留小数点后 6 位的字符串。如果需要更高精度的转换,可以调整prec
参数的值。
strconv.Bool()
:将布尔值转换为字符串
// 将布尔值转换为字符串
b := true
s := strconv.FormatBool(b)
fmt.Println(s) //true其类型为字符串
(4)Append系列函数
package main
import (
"fmt"
"strconv"
)
func main() {
// 1:使用 strconv.AppendBool
var b bool = true
var dst []byte = make([]byte, 0)
dst = strconv.AppendBool(dst, b)
fmt.Println(string(dst)) //true
// 2:使用 strconv.AppendInt
num := 1234
dst = strconv.AppendInt(dst, num, 10)
fmt.Printf("%s ", dst) //true1234
// 3:使用 strconv.AppendQuoteRuneToASCII
dst = make([]byte, 0)
dst = strconv.AppendQuoteRuneToASCII(dst, 'a')
dst = strconv.AppendQuoteRuneToASCII(dst, '中')
fmt.Println(string(dst))// 'a''\u4e2d'
}
在上述示例中,分别使用了 strconv.AppendBool
、strconv.AppendInt
和 strconv.AppendQuoteRuneToASCII
函数来进行不同类型的转换和追加操作。
strconv.AppendBool
将布尔值转换为字符串并追加到字节数组中。
strconv.AppendInt
将整数转换为字符串并使用指定的进制(这里是十进制)追加到字节数组中。
strconv.AppendQuoteRuneToASCII
将字符转换为其 ASCII 编码形式的字符串并追加到字节数组中。