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\n", 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{'\t': 1, '\n': 1, '\v': 1, '\f': 1, '\r': 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\n", 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\n", 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM