1.2.11 合并与分割字符串

一、使用Go语言合并字符串

  1. Go语言strings包中提供了一个名为Join()的函数,函数定义如下:

    func Join(elems []string, sep string) string

    备注:参数elems:字符串数组;参数sep:分隔符

  2. 示例:

    func t1() {
    	str := []string{"I", "Love", "Go", "Java"}
    	res := strings.Join(str, "-")
    	fmt.Println(res)
    }

    结果:I-Love-Go-Java

二、使用Go语言分割字符串

  1. strings包提供了Split()SplitN()SplitAfter()SplitAfterN()四个函数来处理正则分割字符串

  2. Split()函数的定义如下:

    func Split(s, sep string) []string

    备注:参数s:为被正则分割的字符串;参数sep:分隔符

  3. SplitN()函数的定义如下

    func SplitN(s, sep string, n int) []string

    备注:参数s:为被正则分割的字符串;参数sep:分隔符;参数n:控制分割的片数

    n如果为-1则不限制片数

    如果匹配,则函数会返回一个字符串切片

  4. SplitAfter()函数的定义如下

    func SplitAfter(s, sep string)
  5. SplitAfterN()函数的定义如下

    func SplitAfterN(s, sep string, n int) []string
  6. 上述四个函数都是通过sep参数对传入字符串参数s进行分割,返回类型为[]string,如果sep为空,则相当于分成一个UTF-8字符

  7. 以上四个函数中,Split(s, sep)Split(s, sep, -1)等价;SplitAfter(s, sep)SplitAfterN(s, sep, -1)等价

  8. 示例

    func t2() {
    	s := "I-Love-Go-Java"
    	res1 := strings.Split(s, "-")
    	for i := range res1 {
    		fmt.Println(res1[i])
    	}
    
    	res2 := strings.SplitN(s, "-", 2)
    	for i := range res2 {
    		fmt.Println(res2[i])
    	}
    
    	res3 := strings.SplitAfter(s, "-")
    	for i := range res3 {
    		fmt.Println(res3[i])
    	}
    
    	res4 := strings.SplitAfterN(s, "-", 2)
    	for i := range res4 {
    		fmt.Println(res4[i])
    	}
    }

    结果:

    I
    Love
    Go
    Java
    I
    Love-Go-Java
    I-
    Love-
    Go-
    Java
    I-
    Love-Go-Java

Last updated