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

