首先让我们看一段程序以及结果。
package main
import (
"fmt"
"strings"
)
func main() {
str := "Hello"
str += " World!"
//判断字串
if strings.Contains(str, "Hello") {
fmt.Println("'Hello' is 'Hello World' substr ")
}
strs := []string{"aaa", "bbb", "ccc"}
//字符串拼接
fmt.Println(strings.Join(strs, ", "))
//查找首次出现的位置
fmt.Println(strings.Index(str, "lo"))
//重复字符串
fmt.Println(strings.Repeat("ab", 6))
//替换字符串
fmt.Println(strings.Replace(str, "Hello", "New", -1))
//分割字符串
longstr := "aaaa,bbbb,cccc"
result := strings.Split(longstr, ",")
for _, item := range result {
fmt.Println(item)
}
//去除首尾字符
teststr := "###aaaa###"
fmt.Println(strings.Trim(teststr, "#"))
}
API server listening at: 127.0.0.1:11244
'Hello' is 'Hello World' substr
aaa, bbb, ccc
3
abababababab
New World!
aaaa
bbbb
cccc
aaaa
Process exiting with code: 0
以上就是经常用到的字符串操作。
在go语言中,字符串也是字符的数组,但是不同的是不能通过下标修改某个字符比如 str[0]=‘9’。这一点符合go语言中数组是不能被修改的原则,另外不能对字符串中的某个元素取地址,因为go语言是有垃圾回收机制的,这个地址是否有效是不确定的。