天天看点

Go语言strings库的常见用法

博客主页:🏆看看是李XX还是李歘歘 🏆

🌺每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点,以及职场小菜鸡的生活。🌺

💗点关注不迷路,总有一些📖知识点📖是你想要的💗

⛽️今天的内容是      Go语言strings库的常见用法       ⛽️💻💻💻

目录

​​常见用法​​

​​是否包含​​

​​计算数量​​

​​获取下标位置​​

​​转换​​

​​替换拼接​​

​​去除​​

​​分割​​

go语言中文文档:​​Go语言标准库文档中文版 | Go语言中文网 | Golang中文社区 | Golang中国​​

常见用法

是否包含

判断是否包含前缀、后缀、子串、字符已经子串的任意一个字符

package main

import (
  "fmt"
  "strings"
)

func main() {
  // 是否包含前缀
  fmt.Println(strings.HasPrefix("lichuachua", "li")) //true
  // 是否包含后缀
  fmt.Println(strings.HasSuffix("lichuachua", "chua")) //true
  // 是否包含子串
  fmt.Println(strings.Contains("lichuachua", "ichua")) //true
  // 是否包含字符
  fmt.Println(strings.ContainsRune("lichuachua", 'i')) //true
  // 是否包含子串的任意一个字符
  fmt.Println(strings.ContainsAny("lichuachua", "l")) //true
}      

计算数量

package main

import (
  "fmt"
  "strings"
)

func main() {
  // 计算包含几个子串
  fmt.Println(strings.Count("lichuachua", "chua")) // 2
}      

获取下标位置

分为第一次出现和最后一次出现的下标位置

package main

import (
  "fmt"
  "strings"
)

func main() {
  // 获取子串第一次出现时,第一个字符的下标位置
  fmt.Println(strings.Index("lichuachua","chua")) // 2
  // 获取字符第一次出现的下标位置
  fmt.Println(strings.IndexByte("lichuachua",'c')) // 2
  fmt.Println(strings.IndexRune("lichuachua",'c')) // 2
  // 获取子串中任一字符第一次出现的位置
  fmt.Println(strings.IndexAny("lichuachua","chua")) // 2


  // 获取子串最后一次出现时,第一个字符的下标位置
  fmt.Println(strings.LastIndex("lichuachua","chua")) // 6
  // 获取字符最后一次出现的下标位置
  fmt.Println(strings.LastIndexByte("lichuachua",'c')) // 6
  // 获取子串中任一字符最后出现的位置
  fmt.Println(strings.LastIndexAny("lichuachua","chua")) // 9

}      

转换

package main

import (
  "fmt"
  "strings"
)

func main() {
  // 将字符串中的每个单词转为开头大写的单词
  fmt.Println(strings.Title("li chua chua")) // Li Chua Chua
  // 将字符串中的所有字母转为大写
  fmt.Println(strings.ToUpper("li CHUA chua")) // LI CHUA CHUA
  // 将字符串中的所有字母转为小写
  fmt.Println(strings.ToLower("li CHUA chua")) // li chua chua
}      

替换拼接

package main

import (
  "fmt"
  "strings"
)

func main() {
  // 将n个字符串串联起来
  fmt.Println(strings.Repeat("li CHUA chua", 2)) // li CHUA chuali CHUA chua
  // 多个字符串按照固定格式拼接为一个字符串
  fmt.Println(strings.Join([]string{"li", "chua", "chua"}, "@")) //li@chua@chua
  // 替换字符串中的内容,可以控制替换前几个,-1为全部替换
  fmt.Println(strings.Replace("li chua chua", "chua", "CHUA", -1)) // li CHUA CHUA
  // 替换字符串中的某些字符,可以自己控制替换的内容
  fmt.Println(strings.Map(func(c rune) rune {
    switch c {
    case 'c':
      return 'C'
    case 'h':
      return 'H'
    }
    return c
  }, "li chua chua")) // li CHua CHua
}      

去除

package main

import (
  "fmt"
  "strings"
)

func main() {
  // 去除字符串前后端所有包含子串的部分
  fmt.Println(strings.Trim("li chua chua", "chua")) // li chua

  // 去除字符串前端包含【所有】子串的部分
  fmt.Println(strings.TrimLeft("lichuachua", "li")) // chuachua
  // 去除字符串后端包含【所有】子串的部分
  fmt.Println(strings.TrimRight("lichuachua", "chua")) // li
  // 去除字符串中包含前缀的部分【非所有】
  fmt.Println(strings.TrimPrefix("lichuachua","li")) // chuachua
  // 去除字符串中包含后缀的部分【非所有】
  fmt.Println(strings.TrimSuffix("lichuachua","chua")) // lichua

  // 去除字符串前后端【所有】包含空格/tab的部分
  fmt.Println(strings.TrimSpace("   li chua chua  ")) // li chua chua
  // 去除字符串前后端【所有】包含某字符的部分
  fmt.Println(strings.TrimFunc("li chua chuaa", func(r rune) bool {
    if r == 'a' {
      return true
    }
    return false
  })) // li chua chu
  
}      

分割

package main

import (
  "fmt"
  "strings"
)

func main() {
  // 字符串按照空白分割到一个切片中
  fmt.Println(strings.Fields("li chua    chua")) // [li chua chua]
  // 字符串按照某一些字符到一个切片中
  fmt.Println(strings.FieldsFunc("lixchuaxchua", func(r rune) bool{
    if r== 'x' {
      return true
    }
    return false
  })) // [li chua chua]
  // 字符串按照字符串分割到一个切片中
  fmt.Println(strings.Split("lichuachua","ch")) // [li ua ua]
}      
package main

import (
  "fmt"
  "strings"
)

func main()  {
  lcc1 := strings.EqualFold("lcc","lcc")
  fmt.Println(lcc1)

  lcc2 := strings.HasPrefix("lichuachua","li")
  lcc3 := strings.HasSuffix("liyuhao","ao")
  fmt.Println(lcc2)
  fmt.Println(lcc3)

  lcc4 := strings.Contains("lichuachua","chu")
  lcc5 := strings.ContainsAny("lichua","l")
  fmt.Println(lcc4)
  fmt.Println(lcc5)

  lcc6 := strings.Count("lichuachua","chua")
  fmt.Println(lcc6)

  lcc7 := strings.Index("lichuachua","hu")
  fmt.Println(lcc7)

  lcc8 := strings.IndexByte("lichuachua",'c')
  lcc9 := strings.IndexRune("lichuachua",'c')
  fmt.Println(lcc8)
  fmt.Println(lcc9)

  lcc10 := strings.LastIndex("lichuachua","i")
  fmt.Println(lcc10)

  lcc11 := strings.ToLower("LICHUACHUA")
  lcc12 := strings.ToUpper("lichuachua")
  fmt.Println(lcc11)
  fmt.Println(lcc12)

  lcc13 := strings.Repeat("lcc",2)
  lcc14 := strings.Replace("lichuachua","chua","xu",-1)
  fmt.Println(lcc13)
  fmt.Println(lcc14)

  lcc15 := strings.Trim("cclicc","c")
  fmt.Println(lcc15)

  lcc16 := strings.Join([]string{"lcc","lyh","ry"},",")
  fmt.Println(lcc16)

}