天天看点

Go语言strings包处理字符串的一系列功能函数示例讲解

strings包提供了Go语言中操作字符串的方法,提供了一系列函数用于处理字符串,包括比较、查找、替换、转换等功能。

以下是一些常用的示例代码:

1、比较两个字符串:strings.Compare()

package main

import (
    "fmt"
    "strings"
)

func main() {
    s1 := "天生我材必有用"
    s2 := "腹有诗书气自华,读书万卷始通神"
    fmt.Println(strings.Compare(s1, s2))
    //-1
}           

返回值小于0表示s1小于s2,等于0表示s1等于s2,大于0表示s1大于s2。

Go语言strings包处理字符串的一系列功能函数示例讲解

2、查找子串:strings.Contains()

package main

import (
    "fmt"
    "strings"
)

func main() {
    s1 := "书山有路勤为径,学海无涯苦作舟"
    s2 := "学海无涯苦作舟"
    fmt.Println(strings.Contains(s1, s2))
    //true
}           

返回bool值,如果存在子串则返回true,否则返回false。

3、字符串替换:strings.Replace()、strings.ReplaceAll

package main

import (
    "fmt"
    "strings"
)

func main() {
    s1 := "君子喻于义,小人喻于利,小人喻于利"
    s2 := "喻"
    s3 := "喻1"
    fmt.Println(strings.Replace(s1, s2, s3, 2))
    //君子喻1于义,小人喻1于利,小人喻于利
}           

第四个参数控制替换的次数,2表示替换两处,-1表示替换所有。

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "世上无难事,只怕有心人呵呵呵"
    str = strings.ReplaceAll(str, "呵", "哈")
    fmt.Println(str)
    //世上无难事,只怕有心人哈哈哈
}           

将字符串"世上无难事,只怕有心人呵呵呵"中的“呵”替换为“哈”,最终打印出结果“世上无难事,只怕有心人哈哈哈”,strings.ReplaceAll是替换所有。

Go语言strings包处理字符串的一系列功能函数示例讲解

4、转换函数:ToUpper()、ToLower()、Title()

package main
import (
    "fmt"
    "strings"
)
func main() {
    str := "hello world"
    //转换为大写
    str = strings.ToUpper(str)
    fmt.Println(str)
    //HELLO WORLD
    //strings.ToLower():转换为小写
  
    //Title()函数将字符串的每个单词的首字母都转换成大写
    fmt.Println(strings.Title("hello world"))
    //Hello World
}           
Go语言strings包处理字符串的一系列功能函数示例讲解

5、拆分函数:Split()、Fields()

package main
import (
    "fmt"
    "strings"
)
func main() {
    str := "hello,world"
    fmt.Println(strings.Split(str, ","))
    //[hello world]
    str1 := "hello,world"
    fmt.Println(strings.Fields(str1))
    //[hello,world]
}           

将字符串“hello,world”拆分为“hello”和“world”两个子字符串,结果输出为一个字符串数组。

Split()函数与Fields()函数之间的主要区别是,Split()函数需要指定拆分字符,而Fields()函数不需要指定拆分字符,它会默认按照空格,换行和Tab符号来进行拆分。