Go中的字符串是字节的切片
s1 := "hello world"
fmt.Println(s1)
for i, c := range s1 {
fmt.Printf("%c ", c)
if i == len(s1)-1 {
fmt.Println()
}
}
slice2 := []byte(s1)
fmt.Println(slice2)
fmt.Println(strings.Contains(s1, "ll")) //是否包含子字符串
fmt.Println(strings.ContainsRune(s1, 'l')) //是否包含字符
fmt.Println(strings.Index(s1, "l"))
fmt.Println("字符的个数", strings.Count(s1, "l")) //字符的个数
fmt.Println(strings.IndexAny(s1, "we")) // IndexAny 返回字符串 chars 中的任何一个字符在字符串 s 中第一次出现的位置
// 如果找不到,则返回 -1,如果 chars 为空,则返回 -1
fmt.Println(strings.SplitN(s1, "l", strings.Count(s1, "l")+1))
// SplitN 以 sep 为分隔符,将 s 切分成多个子串,结果中不包含 sep 本身
// 如果 sep 为空,则将 s 切分成 Unicode 字符列表。
// 如果 s 中没有 sep 子串,则将整个 s 作为 []string 的第一个元素返回
// 参数 n 表示最多切分出几个子串,超出的部分将不再切分。
// 如果 n 为 0,则返回 nil,如果 n 小于 0,则不限制切分个数,全部切分
// func SplitN(s, sep string, n int) []string
s2 := []string{"he", "ll", "ow", "or", "ld"}
fmt.Println(strings.Join(s2, "|"))
// Join 将 a 中的子串连接成一个单独的字符串,子串之间用 sep 分隔
//func Join(a []string, sep string) string
s3 := "hello"
fmt.Println(strings.Repeat(s3, 3))
// Repeat 将 count 个字符串 s 连接成一个新的字符串
//func Repeat(s string, count int) string
s4 := "helloh"
fmt.Println(strings.Trim(s4, "h"))
// Trim 将删除 s 首尾连续的包含在 cutset 中的字符
//func Trim(s string, cutset string) string
s5 := " 123 "
fmt.Println(strings.TrimSpace(s5))
// TrimSpace 将删除 s 首尾连续的的空白字符
//func TrimSpace(s string) string
s6 := "nihao world ll"
fmt.Println(strings.Replace(s6, "l", "22", -1))
// Replace 返回 s 的副本,并将副本中的 old 字符串替换为 new 字符串
// 替换次数为 n 次,如果 n 为 -1,则全部替换
// 如果 old 为空,则在副本的每个字符之间都插入一个 new
//func Replace(s, old, new string, n int) string
hello world
h e l l o w o r l d
[104 101 108 108 111 32 119 111 114 108 100]
true
true
2
字符的个数 3
1
[he o wor d]
he|ll|ow|or|ld
hellohellohello
ello
123
nihao wor22d 2222
有疑问加站长微信联系(非本文作者)