字符串转换
文章发布较早,内容可能过时,阅读注意甄别。
字符串转化的函数在 strconv 中,如下也只是列出一些常用的。
# 1,Append
Append 系列函数将整数等转换为字符串后,添加到现有的字节数组中。
str := make([]byte, 0, 100)
str = strconv.AppendInt(str, 4567, 10) //以10进制方式追加
str = strconv.AppendBool(str, false)
str = strconv.AppendQuote(str, "abcdefg")
str = strconv.AppendQuoteRune(str, '单')
fmt.Println(string(str)) //4567false"abcdefg"'单'
1
2
3
4
5
6
7
2
3
4
5
6
7
示例代码:
package main
import (
"fmt"
"strconv"
)
func main() {
//转换为字符串后追加到字节数组
slice := make([]byte, 0, 1024)
slice = strconv.AppendBool(slice, true)
//第二个数为要追加的内容,第3个数为指定10进制方式追加
slice = strconv.AppendInt(slice, 1234, 10)
slice = strconv.AppendQuote(slice, "abchelloeryajf")
fmt.Println("slice = ", string(slice)) //转换为string之后再追加
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 2,Format
Format 系列函数把其他类型的转换为字符串。
a := strconv.FormatBool(false)
b := strconv.FormatInt(1234, 10)
c := strconv.FormatUint(12345, 10)
d := strconv.Itoa(1023)
fmt.Println(a, b, c, d) //false 1234 12345 1023
1
2
3
4
5
6
2
3
4
5
6
示例代码:
package main
import (
"fmt"
"strconv"
)
func main() {
//其他类型转换为字符串
var str string
str = strconv.FormatBool(false)
//'f':指打印格式,以小数方式, -1指小数点位数(紧缩模式),64:指以float64处理
str = strconv.FormatFloat(3.14, 'f', -1, 32)
fmt.Println("str = ", str)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 3,另外的常用转换。
package main
import (
"fmt"
"strconv"
)
func main() {
//整形转字符串,常用方式如下
str := strconv.Itoa(666)
fmt.Println("str = ", str)
//字符串转其他类型
var flag bool
var err error
flag, err = strconv.ParseBool("true")
if err == nil {
fmt.Println("flag = ", flag)
} else {
fmt.Println("err = ", err)
}
//把字符串转换为整形
a, _ := strconv.Atoi("567")
fmt.Println("a = ", a)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 4,其他转换
package main
import (
"fmt"
"strconv"
)
func main() {
//从字符串中解析出对应的数据
str := "1000"
ret1, err := strconv.ParseInt(str, 10, 64)
if err != nil {
fmt.Println("parse int failed, err", err)
return
}
fmt.Printf("%#v\n", ret1)
// Atoi:字符串转换成int
ret2, _ := strconv.Atoi(str)
fmt.Printf("%#v\n", ret2)
// int 转换成子字符串
i := 10
ret3 := strconv.Itoa(i)
fmt.Printf("%#v\n", ret3)
// 从字符串中解析出布尔值
boolStr := "true"
bv, _ := strconv.ParseBool(boolStr)
fmt.Printf("%#v %T\n", bv, bv)
// 从字符串中解析出浮点数
floatStr := "1.23"
fv, _ := strconv.ParseFloat(floatStr, 64)
fmt.Printf("%#v %T\n", fv, fv)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
上次更新: 2024/11/28, 21:21:13