go语言中strings包的用法汇总

2020-01-28 13:24:52于丽

func isSlash(r rune) bool {
 return r == '' || r == '/'
}

func main() {
 s := "C:WindowsSystem32"
 i := strings.IndexFunc(s, isSlash)
 fmt.Printf("%vn", i) // 2
}

------------------------------------------------------------

// 返回 s 中最后一个满足 f(rune) 的字符的字节位置。
// 如果没有满足 f(rune) 的字符,则返回 -1
func LastIndexFunc(s string, f func(rune) bool) int

func isSlash(r rune) bool {
 return r == '' || r == '/'
}

func main() {
 s := "C:WindowsSystem32"
 i := strings.LastIndexFunc(s, isSlash)
 fmt.Printf("%vn", i) // 10
}

------------------------------------------------------------

// Trim 将删除 s 首尾连续的包含在 cutset 中的字符
func Trim(s string, cutset string) string

func main() {
 s := " Hello 世界! "
 ts := strings.Trim(s, " Helo!")
 fmt.Printf("%qn", ts) // "世界"
}

------------------------------------------------------------

// TrimLeft 将删除 s 头部连续的包含在 cutset 中的字符
func TrimLeft(s string, cutset string) string

func main() {
 s := " Hello 世界! "
 ts := strings.TrimLeft(s, " Helo")
 fmt.Printf("%qn", ts) // "世界! "
}

------------------------------------------------------------

// TrimRight 将删除 s 尾部连续的包含在 cutset 中的字符
func TrimRight(s string, cutset string) string

func main() {
 s := " Hello 世界! "
 ts := strings.TrimRight(s, " 世界!")
 fmt.Printf("%qn", ts) // " Hello"
}

------------------------------------------------------------

// TrimSpace 将删除 s 首尾连续的的空白字符
func TrimSpace(s string) string
func main() {
 s := " Hello 世界! "
 ts := strings.TrimSpace(s)
 fmt.Printf("%qn", ts) // "Hello 世界!"
}

------------------------------------------------------------

// TrimPrefix 删除 s 头部的 prefix 字符串
// 如果 s 不是以 prefix 开头,则返回原始 s
func TrimPrefix(s, prefix string) string

func main() {
 s := "Hello 世界!"
 ts := strings.TrimPrefix(s, "Hello")
 fmt.Printf("%qn", ts) // " 世界"
}

------------------------------------------------------------

// TrimSuffix 删除 s 尾部的 suffix 字符串
// 如果 s 不是以 suffix 结尾,则返回原始 s
func TrimSuffix(s, suffix string) string
func main() {
 s := "Hello 世界!!!!!"
 ts := strings.TrimSuffix(s, "!!!!")