go语言字符串的拼接和切片方法总结
一,go字符串的本质
go语言字符串的本质就是byte[]数组,里面每一个数据存的是字符的Unicode码。
二,字符串拼接的几种方法
1,使用+号拼接字符串
拼接之后返回一个新的字符串。
package main
import "fmt"
func main() {
str1 := "go"
str2 := "语言"
re := str1 + str2
fmt.Println(re)
}
2,使用fmt包的Sprintf()函数
对字符串使用格式化输出的形式来拼接字符串。返回一个拼接之后的字符串对象。
package main
import "fmt"
func main() {
str1 := "go"
str2 := "语言"
re := fmt.Sprintf("%s%s", str1, str2)
fmt.Println(re)
}
3,使用strings包的Join()函数
package main
import (
"fmt"
"strings"
)
func main() {
str1 := "go"
str2 := "语言"
re := strings.Join([]string{str1, str2}, "")
fmt.Println(re)
}
4,使用bytes.Buffer储存字符串再打印输出
package main
import (
"bytes"
"fmt"
)
func main() {
str1 := "go"
str2 := "语言"
var buffer bytes.Buffer //声明一个buffer变量
buffer.WriteString(str1)
buffer.WriteString(str2)
fmt.Printf("buffer.String(): %v\n", buffer.String())
}
这种方式最常用。因为它将字符串变为可变,内存消耗小。
三,字符串的切片
切片很好理解,[m:n]截取从m至n-1间的字符,如果缺省,则表示头或者尾。[:]表示整个字符串。[0]表示第一个字符。
四,字符串函数
附:golang将整型切片转换为字符串
在python中,将list转换为str,使用str.join即可,但在golang中,strings.join要求是一个字符串类型的序列,所以可以先将序列格式化成字符串,然后替换其中的空格,再去掉收尾的[]即可。
package main
import "fmt"
func Int2Str() {
a := []int{1, 2, 3, 4, 5}
fmt.Println(strings.Trim(strings.Replace(fmt.Sprint(a), " ", ",", -1), "[]")) // 1,2,3,4,5
}
func main() {
Int2Str()
}