普通操作

1
2
3
4
5
6
7
func main() {
a := "aaaaaaaa"
b := "bbbb"

fmt.Println(strings.Compare(a, b)) // 比较,相等为0,不等为-1
fmt.Println(strings.Count(a, "a")) // a 中"a"字符有几个
}
1
2
3
4
5
# output:
-1
true
true
8

大小写

1
2
strings.ToUpper("hhhhhhhh")
strings.ToLower("HHHHHHHH")

是否包含某个字符

1
2
fmt.Println(strings.Contains(a, "a"))  // 是否包含某个字符或者字符串
fmt.Println(strings.ContainsAny(a, "b & a")) // 任意一个字符存在true

分割字符串

1
2
3
4
5
6
7
8
9
10
11
func main() {
a := "a a a a a a a a"
// Split 用空格分隔,不保留空格
split := strings.Split(a, " ")
fmt.Println(split)
split1 := strings.Split(a, "a")
fmt.Println(split1)
// SplitAfter 用a分隔,保留 "a"
splitA := strings.SplitAfter(a, "a")
fmt.Println(splitA)
}
1
2
3
4
# output : 
[a a a a a a a a]
[ ]
[a a a a a a a a ]

判断前后缀

1
2
3
4
5
6
7
8
9
func main() {
s := "today"
// 判断前缀
fmt.Println(strings.HasPrefix(s, "to"))
fmt.Println(strings.HasPrefix(s, "tt"))
// 判断后缀
fmt.Println(strings.HasSuffix(s, "day"))
fmt.Println(strings.HasSuffix(s, "ddd"))
}
1
2
3
4
5
# output : 
true
false
true
false

拼接字符串

有四种方法

  1. 加法
  2. fmt.Sprintf
  3. strings.join
  4. strings.builder
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// main 字符串拼接
func main() {
s := "hello" + "today"
fmt.Println(s)

a := fmt.Sprintln("hello", "today")
fmt.Println(a)
// 可以加入中间的字符
j := strings.Join([]string{"hello", "today"}, "!!!!!!!!!!!")
fmt.Println(j)
// 往builder中加入字符串
var build strings.Builder
build.WriteString("hello")
build.WriteString(" wwww")
fmt.Println(build.String())
}
1
2
3
4
5
6
# output:
hellotoday
hello today

hello!!!!!!!!!!!today
hello wwww

查找索引

1
2
3
4
5
6
7
8
//返回子串sep在字符串s中第一次出现的索引值,不在的话返回-1.
func Index(s, sep string) int
//chars中任何一个Unicode代码点在s中首次出现的位置,不存在返回-1
func IndexAny(s, chars string) int
// 还可以自己设定函数
func IndexFunc(s string, f func(rune)bool)int
// 查找最后一次出现的位置
func LastIndex(s, sep string) int
1
2
3
4
5
6
strings.IndexFunc("study",func(c rune)bool{
if c > 'u'{
return true
}
return false
})

字符串的删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
func main() {
// 去除两端的所有‘h’字符
trim := strings.Trim("hhhhehlhlhohhh", "h")
println(trim)
// 去除左端的所有'h'字符
trimLeft := strings.TrimLeft("hhhhhhhehlhlhoh", "h")
println(trimLeft)
// 去除右端所有的'h'字符
trimRight := strings.TrimRight("hehlhlhohhhhhhhh", "h")
println(trimRight)
// 去除前后缀
trimPrefix := strings.TrimPrefix("hehlhlhohhhhhhhh", "h")
println(trimPrefix)
trimSuffix := strings.TrimSuffix("hehlhlhohhhhhhhh", "h")
println(trimSuffix)
}
1
2
3
4
5
6
# output :
ehlhlho
ehlhlhoh
hehlhlho
ehlhlhohhhhhhhh
hehlhlhohhhhhhh
1
2
3
4
// 补充
func TrimFunc(s string, f func(rune) bool) string //函数
func TrimLeftFunc(s string, f func(rune) bool) string
func TrimRightFunc(s string, f func(rune) bool) string