go语言中strings包的用法汇总

2019-11-10 12:13:36于丽

func main() {
 s := "Hello, 世界! Hello!"
 ss := strings.Fields(s)
 fmt.Printf("%qn", ss) // ["Hello," "世界!" "Hello!"]
}

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

// FieldsFunc 以一个或多个满足 f(rune) 的字符为分隔符,
// 将 s 切分成多个子串,结果中不包含分隔符本身。
// 如果 s 中没有满足 f(rune) 的字符,则返回一个空列表。
func FieldsFunc(s string, f func(rune) bool) []string

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

func main() {
 s := "C:WindowsSystem32FileName"
 ss := strings.FieldsFunc(s, isSlash)
 fmt.Printf("%qn", ss) // ["C:" "Windows" "System32" "FileName"]
}

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

// Join 将 a 中的子串连接成一个单独的字符串,子串之间用 sep 分隔
func Join(a []string, sep string) string
func main() {
 ss := []string{"Monday", "Tuesday", "Wednesday"}
 s := strings.Join(ss, "|")
 fmt.Println(s)
}

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

// HasPrefix 判断字符串 s 是否以 prefix 开头
func HasPrefix(s, prefix string) bool

func main() {
 s := "Hello 世界!"
 b := strings.HasPrefix(s, "hello")
 fmt.Println(b) // false
 b = strings.HasPrefix(s, "Hello")
 fmt.Println(b) // true
}

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

// HasSuffix 判断字符串 s 是否以 prefix 结尾
func HasSuffix(s, suffix string) bool
func main() {
 s := "Hello 世界!"
 b := strings.HasSuffix(s, "世界")
 fmt.Println(b) // false
 b = strings.HasSuffix(s, "世界!")
 fmt.Println(b) // true
}

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

// Map 将 s 中满足 mapping(rune) 的字符替换为 mapping(rune) 的返回值。
// 如果 mapping(rune) 返回负数,则相应的字符将被删除。
func Map(mapping func(rune) rune, s string) string

func Slash(r rune) rune {
 if r == '' {
  return '/'
 }
 return r
}
func main() {

 s := "C:WindowsSystem32FileName"
 ms := strings.Map(Slash, s)
 fmt.Printf("%qn", ms) // "C:/Windows/System32/FileName"
}

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

// Repeat 将 count 个字符串 s 连接成一个新的字符串
func Repeat(s string, count int) string
func main() {
 s := "Hello!"
 rs := strings.Repeat(s, 3)