### 判断前缀、后缀
```
// HasPrefix 判断字符串 str 是否以 prefix 开头:
strings.HasPrefix(str, prefix string) bool
package main
import (
"fmt"
"strings"
)
func main() {
str := "hello world"
res := strings.HasPrefix(str, "he")
fmt.Println(res) // true
}
```
```
// HasSuffix 判断字符串 str 是否以 suffix 结尾:
strings.HasSuffix(str, suffix string) bool
func main() {
str := "hello world"
res := strings.HasSuffix(str, "wo")
fmt.Println(res) // false
}
```
### 判断是否包含字符串
```
// Contains 判断字符串 str 是否包含 substr:
strings.Contains(str, substr string) bool
func main() {
str := "hello world"
res := strings.Contains(str, " ")
fmt.Println(res) // true
}
```
### 判断子字符串或字符在父字符串中出现的位置(索引)
```
// Index 返回字符串 s 在字符串 str 中的索引,-1 表示字符串 str 不包含字符串 s:
strings.Index(str, s string) int
func main() {
str := "hello world"
res := strings.Index(str, "o")
fmt.Println(res) // 4
}
```
```
// LastIndex 返回字符串 s 在字符串 str 中最后出现位置的索引,-1 表示字符串 str 不包含字符串 s:
strings.LastIndex(s, str string) int
func main() {
str := "hello world"
res := strings.LastIndex(str, "o")
fmt.Println(res) // 7
}
```
### 字符串替换
```
Replace 用于将字符串 str 中的前 n 个字符串 old 替换为字符串 new,并返回一个新的字符串,如果 n = -1 则替换所有字符串 old 为字符串 new:
strings.Replace(str, old, new, n) string
func main() {
str := "hello world"
res := strings.Replace(str, " ", "-", 1)
fmt.Println(res) // hello-world
}
```
### 统计字符串出现次数
```
//Count 用于计算字符串 s 在字符串 str 中出现的非重叠次数:
strings.Count(str, s string) int
func main() {
str := "hello world"
res := strings.Count(str, "o")
fmt.Println(res) // 2
}
```
### 重复字符串
```
// Repeat 用于重复 count 次字符串 str 并返回一个新的字符串:
strings.Repeat(s, count int) string
func main() {
str := "hello world"
res := strings.Repeat(str, 2)
fmt.Println(res) // hello worldhello world
}
```
### 修改字符串大小写
```
// ToLower 将字符串中的 Unicode 字符全部转换为相应的小写字符:
strings.ToLower(str) string
func main() {
str := "Hello WORLD"
res := strings.ToLower(str)
fmt.Println(res) // hello world
}
// ToUpper 将字符串中的 Unicode 字符全部转换为相应的大写字符:
strings.ToUpper(str) string
func main() {
str := "Hello world"
res := strings.ToUpper(str)
fmt.Println(res) // HELLO WORLD
}
```
### 修剪字符串
```
// 你可以使用 strings.TrimSpace(str) 来剔除字符串开头和结尾的空白符号;如果你想要剔除指定字符,则可以使用 strings.Trim(str, "cut") 来将开头和结尾的 cut 去除掉。该函数的第二个参数可以包含任何字符,如果你只想剔除开头或者结尾的字符串,则可以使用 TrimLeft 或者 TrimRight 来实现。区分大小写
func main() {
str := "Hello world"
res := strings.Trim(str, "He")
fmt.Println(res) // llo world
}
```
### 分割字符串
```
// strings.Fields(str) 利用空白作为分隔符将字符串分割为若干块,并返回一个 slice 。如果字符串只包含空白符号,返回一个长度为 0 的 slice 。
// strings.Split(str, sep) 自定义分割符号 sep 对字符串分割,返回 slice 。
```
### 拼接 slice 到字符串
```
// Join 用于将元素类型为 string 的 slice 使用分割符号来拼接组成一个字符串:
strings.Join(sl []string, sep string) string
func main() {
str := "H-e-l-l-o world"
s2 := strings.Split(str, "-")
res := strings.Join(s2, "|")
fmt.Printf("%q", res) // "H|e|l|l|o world"
}
```