Go语言中容易被忽视的一些小工具:strings和strconv
Go语言作为一门现代化的编程语言,具有很多优秀的特性,比如高性能、内存安全、并发支持等等。但是,有时候我们要去处理一些字符串和数字转换的问题,就会发现Go语言的标准库中也有很多好用的小工具,比如strings和strconv。
本文将详细介绍Go语言标准库中的strings和strconv两个包,它们在实际开发中可能并不是非常常用,但是在处理字符串和数字转换上,它们确实是非常好用的小工具。
一、strings包
strings包是Go语言标准库中提供的字符串处理包,提供了一系列的字符串操作函数,包含字符串拼接、查找、替换、分割等常见操作。这些函数都是基于UTF-8编码的字符串,因此也避免了编码转换等问题。
1.字符串拼接
字符串拼接是最基础的字符串操作,strings包中提供的Join函数可以将一个字符串数组拼接成一个字符串。
```go
package main
import (
"fmt"
"strings"
)
func main() {
arr := []string{"hello", "world", "golang"}
str := strings.Join(arr, " ")
fmt.Println(str)
}
```
上述代码中,我们将字符串数组arr使用空格拼接成一个字符串,输出结果为:
```
hello world golang
```
2.字符串查找、替换
字符串查找和替换是字符串操作中比较常见的操作,在Go语言标准库中也提供了相应的函数。下面我们以Contains和Replace函数为例进行介绍。
Contains函数用于判断一个字符串是否包含另一个字符串,返回一个bool类型的结果。
```go
package main
import (
"fmt"
"strings"
)
func main() {
str1 := "hello world"
str2 := "wor"
if strings.Contains(str1, str2) {
fmt.Println("str1包含str2")
} else {
fmt.Println("str1不包含str2")
}
}
```
上述代码中,我们使用Contains函数判断str1是否包含str2,输出结果为:
```
str1包含str2
```
Replace函数用于将一个字符串中的某个子串全部替换为另一个字符串,返回替换后的新字符串。
```go
package main
import (
"fmt"
"strings"
)
func main() {
str := "hello world"
newStr := strings.Replace(str, "world", "golang", -1)
fmt.Println(newStr)
}
```
上述代码中,我们使用Replace函数将字符串中的"world"替换成"golang",输出结果为:
```
hello golang
```
3.字符串分割
字符串分割也是字符串操作中比较常见的操作,strings包中提供了Split函数可以将一个字符串拆分成一个字符串数组。
```go
package main
import (
"fmt"
"strings"
)
func main() {
str := "hello world golang"
arr := strings.Split(str, " ")
for _, v := range arr {
fmt.Println(v)
}
}
```
上述代码中,我们使用Split函数将字符串按空格拆分成一个字符串数组,并使用for循环遍历输出每个字符串,输出结果为:
```
hello
world
golang
```
二、strconv包
strconv包也是Go语言标准库中提供的一个非常有用的数字处理包,提供了将字符串转换为数字类型、数字类型转换成字符串等函数。strconv包在实际开发中经常用于处理配置文件读取、API参数处理等场景。
1.字符串转数字类型
strconv包中提供了很多函数可以将字符串转换成各种数字类型,比如Atoi函数可以将字符串转换为int类型,ParseFloat函数可以将字符串转换为float类型。下面我们以Atoi函数为例进行介绍。
```go
package main
import (
"fmt"
"strconv"
)
func main() {
str := "123"
num, err := strconv.Atoi(str)
if err != nil {
fmt.Println("转换失败")
} else {
fmt.Println(num)
}
}
```
上述代码中,我们使用Atoi函数将字符串"123"转换成int类型的数字,如果转换失败则会返回一个错误信息。输出结果为:
```
123
```
2.数字类型转字符串
数字类型转字符串也是strconv包经常使用的一个函数,比如FormatInt可以将int类型的数字转换成对应进制的字符串,FormatFloat可以将float类型的数字转换成字符串等等。下面我们以FormatInt函数为例进行介绍。
```go
package main
import (
"fmt"
"strconv"
)
func main() {
num := 123
str := strconv.FormatInt(int64(num), 2)
fmt.Println(str)
}
```
上述代码中,我们使用FormatInt函数将数字123转换成二进制的字符串,输出结果为:
```
1111011
```
三、总结
在实际开发中,处理字符串和数字类型转换是比较常见的操作,Go语言标准库中提供的strings和strconv两个包为我们提供了很多好用的小工具。本文详细介绍了strings和strconv两个包中常用的函数,希望对大家学习Go语言有所帮助。