📅  最后修改于: 2023-12-03 15:01:02.244000             🧑  作者: Mango
在 Golang 中处理字符串时,切片是一个非常有用的工具。它可以让我们方便地对字符串进行切割、连接、复制、删除等操作。本篇介绍如何使用切片对 Go 的字符串进行操作。
在 Golang 中,字符串是一个字节切片(byte slice)。因此,你可以像处理普通的切片一样来处理字符串,例如取子串、拼接等等。
字符串切片的写法和普通切片基本一样,只不过元素类型是 uint8,也就是 byte。你可以使用系统内置的 []byte
类型,也可以自己定义 []uint8
。
var str string = "hello, world!"
s := []byte(str)
s[0] = 'H'
fmt.Println(string(s)) // "Hello, world!"
为了方便起见,Golang 也提供了对字符串的直接切片语法:
str := "hello, world!"
s := str[0:5]
fmt.Println(s) // "hello"
值得注意的是,字符串切片不会进行内存复制,因此对字符串的操作会对原始字符串产生影响。
使用 Golang 中的 strings 库中的 Split 方法可以快速地将字符串按照分隔符切割成为切片。例如:
str := "apple,banana,orange"
sli := strings.Split(str, ",")
fmt.Println(sli) // ["apple", "banana", "orange"]
使用 strings.Join 可以将一个字符串切片连接起来。
words := []string{"hello", "world"}
str := strings.Join(words, " ")
fmt.Println(str) // "hello world"
判断两个字符串是否相等可以使用 ==
运算符,如:
str1 := "hello"
str2 := "world"
if str1 == str2 {
fmt.Println("equal")
} else {
fmt.Println("not equal")
}
如果你需要不分大小写比较字符串,你可以将两个字符串全部转换成大写或小写后再进行比较,例如:
str1 := "HeLlo"
str2 := "hElLo"
if strings.ToLower(str1) == strings.ToLower(str2) {
fmt.Println("equal")
} else {
fmt.Println("not equal")
}
使用 len() 可以获取一个字符串的长度;
str := "Hello, 世界"
fmt.Println(len(str)) // 13