Golang常见的字符串函数操作实战篇

         Golang常见的字符串函数操作实战篇

                               作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

一.判断子串

package main

import (
    "fmt"
    "strings"
)

func main() {

    s1 := "尹正杰2020"

    s2 := "2020"

    /**
    Contains函数的签名如下所示:
        func Contains(s, substr string) bool

    对函数签名个参数说明如下:
        s:
            表示一个字符串
        substr:
            表示需要和s进行对比的子串
        bool:
            表示返回值类型,如果s包含substr则返回true,如果不包含则返回false.
    */
    result := strings.Contains(s1, s2)

    fmt.Printf("result = %t
", result)

    if result {
        fmt.Println("s2是s1的子串")
    } else {
        fmt.Println("s2不是s1的子串")
    }
}

二.字符串拼接

package main

import (
    "fmt"
    "strings"
)

func main() {

    //定义一个字符串切片
    s1 := []string{
        "YinZhengjie",
        "尹正杰",
        "2020",
    }
    fmt.Println(s1)

    /**
    Join的函数签名如下所示:
        Join(a []string, sep string) string
    对函数签名个参数说明如下:
        a:
            表示待拼接的字符串切片.
        sep:
            表示指定拼接的链接符号,如果不想使用任何拼接符号可以使用空串("")
        string:
            返回值就是将字符串切片(a)按照拼接符号(sep)进行拼接的一个最终结果
    */
    result := strings.Join(s1, "-")
    fmt.Println(result)
}

三.字符串删除首尾字符

package main

import (
    "fmt"
    "strings"
)

func main() {

    s1 := "2020YinZhengjie"
    fmt.Println(s1)
    s2 := "尹正杰2020"
    fmt.Println(s2)
    s3 := "尹正杰2020到此一游"
    fmt.Println(s3)

    /**
    Trim函数的签名如下所示:
        func Trim(s string, cutset string) string

    以下是对函数签名相关参数的说明:
        s:
            表示待操作的字符串
        cutset:
            表示需要删除的首尾字符串
        string:
            返回值是将待操作的字符串(s)经过删除首尾字符串(cutset)后的字符串结果返回。
    
    温馨提示:
        通常使用该函数去除字符串中包含的多余空格。
    */
    result1 := strings.Trim(s1, "2020")
    result2 := strings.Trim(s2, "2020")
    result3 := strings.Trim(s3, "2020")
    fmt.Println()

    fmt.Println(result1)
    fmt.Println(result2)
    fmt.Println(result3)

}

四.字符串替换

package main

import (
    "fmt"
    "strings"
)

func main() {

    s1 := "YinZhengjie2020"
    fmt.Println(s1)
    fmt.Println()

    /**
    Replace函数的签名如下所示:
        func Replace(s, old, new string, n int) string

    以下是对函数签名相关参数说明:
        s:
            表示待操作的字符串
        old:
            表示在代操作的字符串中需要替换的子串
        new:
            表示将old子串替换成新的字符串(new)
        n:
            表示替换的个数,当n为正数时,仅替换相应个数的子串,当n为负数时,则不限制替换的个数,即全部匹配。
    */
    result1 := strings.Replace(s1, "YinZhengjie", "尹正杰", 1)
    fmt.Println(result1)

    result2 := strings.Replace(s1, "e", "E", 2)
    fmt.Println(result2)

    result3 := strings.Replace(s1, "n", "N", -1)
    fmt.Println(result3)
}

五.字符串分割

package main

import (
    "fmt"
    "strings"
)

func main() {

    s1 := "YinZhengjie           尹正杰           2020"
    fmt.Println(s1)
    fmt.Println()

    /**
    Split函数的签名如下所示:
        func Split(s, sep string) []string

    以下时对函数签名的相关参数说明:
        s:
            表示待操作的字符串
        sep:
            表示以那个字符串为切割
        []string:
            返回值是一个字符串切片数组。

    温馨提示:
        Split的作用和join相反,是把字符串按照指定的子串切割成字符串切片
    */
    result1 := strings.Split(s1, " ") //此处我们按照空格来进行切分
    fmt.Println(result1)

    /**
    如下所示,通过查看Fields函数源码,默认是按照指定的特定的分隔符进行切割的.
        通过"[256]uint8{'	': 1, '
': 1, 'v': 1, 'f': 1, '
': 1, ' ': 1}"进行切割
    */
    result2 := strings.Fields(s1)
    fmt.Println(result2)

}

六.判断字符串的前后缀

package main

import (
    "fmt"
    "strings"
)

func main() {

    s1 := "yinzhengjie2020"
    fmt.Println(s1)

    /**
    HasPrefix函数签名如下:
        func HasPrefix(s, prefix string) bool

    以下是对函数签名的相关参数说明:
        s:
            表示待匹配的字符串
        prefix:
            指定一个字符串,判断待匹配的字符串(s)是否以指定字符串(prefix)开头的
        bool:
            返回的结果是一个布尔值,如果是指定的字符串(prefix)开头,则返回true,否则返回false.
    */
    result1 := strings.HasPrefix(s1, "yin")
    fmt.Printf("s1是以'yin'字符开头,结果为: %t
", result1)

    /**
    HasSuffix函数签名如下:
        func HasSuffix(s, suffix string) bool

    以下是对函数签名的相关参数说明:
        s:
            表示待匹配的字符串
        suffix:
            指定一个字符串,判断待匹配的字符串(s)是否以指定字符串(suffix)结尾的
        bool:
            返回的结果是一个布尔值,如果是指定的字符串(suffix)结尾,则返回true,否则返回false.
    */
    result2 := strings.HasSuffix(s1, "2020")
    fmt.Printf("s1是以'2020'字符结尾,结果为: %t
", result2)

}

七.字符串大小写转换

package main

import (
    "fmt"
    "strings"
)

func main() {
    s1 := "YinZhengjie2020"
    fmt.Println(s1)

    //将字符串转换为大写
    upper := strings.ToUpper(s1)
    fmt.Println(upper)

    //将字符串转换成小写
    lower := strings.ToLower(s1)
    fmt.Println(lower)
}

八.其它常见的API文档

  博主推荐阅读:
    https://studygolang.com/pkgdoc
    https://studygolang.com/static/pkgdoc/pkg/strings.htm

原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12548380.html