//strings 字符串处理包
package main
import (
"strings"
"fmt"
)
func main(){
//判断前缀后缀
//HasPrefix 判断字符串 "头123456789尾" 是否以 "头" 开头:
//strings.HasPrefix(s, prefix string) bool
fmt.Printf("%t \n",strings.HasPrefix("头123456789尾", "头"))// true
//HasSuffix 判断字符串 "头123456789尾" 是否以 "头" 结尾:
//strings.HasSuffix(s, suffix string) bool
fmt.Printf("%t \n",strings.HasSuffix("头123456789尾", "尾"))// true
//判断字符串包含关系
//判断字符串 "是否包含" 是否包含子串 "否包"
fmt.Printf("%t \n",strings.Contains("是否包含", "否包"))// true
fmt.Printf("%t \n",strings.Contains("是否包含", "包含吗"))// false
//判断子字符串或字符在父字符串中出现的位置(索引)(从0开始)
//strings.Index子串"3"在字符串"123456789"中第一次出现的位置,不存在则返回-1。
fmt.Printf("%d \n",strings.Index("1234563789", "3"))// 2
//strings.LastIndex 子串sep在字符串s中最后一次出现的位置,不存在则返回-1。
fmt.Printf("%d \n",strings.LastIndex("1234563789", "3"))// 2
//字符串替换
//返回将s中前n个不重叠old子串都替换为new的新字符串,如果n<0(-1)会替换所有old子串。
//strings.Replace(s, old, new string, n int) string
//把 "ABCDEF" 中的 "ABC" 替换为 "LLL" 最后一个参数替换前几个(小于0 替换全部)
fmt.Printf("%s \n", strings.Replace("ABCDEF", "ABC", "LLL", 1))// LLLDEF
fmt.Printf("%s \n", strings.Replace("ABCDEFABC,ABC", "ABC", "LLL", 2))// LLLDEFLLL,ABC
fmt.Printf("%s \n", strings.Replace("ABCDEFABC23ABC", "ABC", "LLL", -1))// LLLDEFLLL23LLL
}
//参考资料https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/04.7.md