最近由于用go做字符串處理,用到了go的strings庫,借此對go strings庫做個總結,將go strings中所有函數的功能做一個簡單的說明,當然,這是一個重復造輪子的過程,因為go語言標準庫已經有中文版了。
詳見:https://studygolang.com/pkgdoc
所以寫本文主要有以下2個目的,其一,熟悉編程語言字符串處理方法。大多數語言的字符串處理庫提供的函數都大同小異,且越高級的語言提供的函數越多,比如c提供的字符串處理函數go基本都有,但是go提供的c未必有。其實定義了基本的字符串處理函數后,更高級字符串處理函數都是通過封裝基本的處理函數實現。所以熟悉go strings庫后基本就能熟悉大多語言的strings庫了。其二,學習標準庫的命名方式。命名是計算機科學最難的二件事之一,另外一件事是緩存失效??梢娒诰幊讨兄匾?。作為一個剛入門的程序員,熟悉標準庫的函數命名方式后,以后可以參考其命名方式,因為寫代碼很多時候都是在想一個合適的函數名、方法名和變量名等。
函數列表
- Compare(a, b string) int
按字典順序比較a和b字符串大小
- func Contains(s, substr string) bool
判斷字符串s是否包含substr字符串
- func ContainsAny(s, chars string) bool
判斷字符串s是否包含chars字符串中的任一字符
- func ContainsRune(s string, r rune) bool
判斷字符串s是否包含unicode碼值r
- func Count(s, sep string) int
返回字符串s包含字符串sep的個數
- func EqualFold(s, t string) bool
判斷s和t兩個utf8字符串是否相等,忽略大小寫
- func Fields(s string) []string
將字符串s以空白字符分割,返回一個切片
- func FieldsFunc(s string, f func(rune) bool) []string
將字符串s以滿足f(r)==true的字符分割,返回一個切片
- func HasPrefix(s, prefix string) bool
判斷字符串s是否有前綴字符串prefix
- func HasSuffix(s, suffix string) bool
判斷字符串s是否有前綴字符串suffix
- func Index(s, sep string) int
返回字符串s中字符串sep首次出現的位置
- func IndexAny(s, chars string) int
返回字符串chars中的任一unicode碼值r在s中首次出現的位置
- func IndexByte(s string, c byte) int
返回字符串s中字符c首次出現位置
- func IndexFunc(s string, f func(rune) bool) int
返回字符串s中滿足函數f(r)==true字符首次出現的位置
- func IndexRune(s string, r rune) int
返回unicode碼值r在字符串中首次出現的位置
- func Join(a []string, sep string) string
將a中的所有字符串連接成一個字符串,使用字符串sep作為分隔符
- func LastIndex(s, sep string) int
返回字符串s中字符串sep最后一次出現的位置
- func LastIndexAny(s, chars string) int
返回字符串s中任意一個unicode碼值r最后一次出現的位置
- func LastIndexByte(s string, c byte) int
返回字符串s中字符c最后一次出現的位置
- func LastIndexFunc(s string, f func(rune) bool) int
返回字符串s中滿足函數f(r)==true字符最后一次出現的位置
- func Map(mapping func(rune) rune, s string) string
將字符串s中的每個字符r按函數mapping(r)的規則轉換并返回
- func Repeat(s string, count int) string
將字符串s重復count次返回
- func Replace(s, old, new string, n int) string
替換字符串s中old字符為new字符并返回,n<0是替換所有old字符串
- func Split(s, sep string) []string
將字符串s以sep作為分隔符進行分割,分割后字符最后去掉sep
- func SplitAfter(s, sep string) []string
將字符串s以sep作為分隔符進行分割,分割后字符最后附上sep
- func SplitAfterN(s, sep string, n int) []string
將字符串s以sep作為分隔符進行分割,分割后字符最后附上sep,n決定返回的切片數
- func SplitN(s, sep string, n int) []string
將字符串s以sep作為分隔符進行分割,分割后字符最后去掉sep,n決定返回的切片數
- func Title(s string) string
將字符串s每個單詞首字母大寫返回
- func ToLower(s string) string
將字符串s轉換成小寫返回
- func ToLowerSpecial(_case unicode.SpecialCase, s string) string
將字符串s中所有字符按_case指定的映射轉換成小寫返回
- func ToTitle(s string) string
將字符串s轉換成大寫返回
- func ToTitleSpecial(_case unicode.SpecialCase, s string) string
將字符串s中所有字符按_case指定的映射轉換成大寫返回
- func ToUpper(s string) string
將字符串s轉換成大寫返回
- func ToUpperSpecial(_case unicode.SpecialCase, s string) string
將字符串s中所有字符按_case指定的映射轉換成大寫返回
- func Trim(s string, cutset string) string
將字符串s中首尾包含cutset中的任一字符去掉返回
- func TrimFunc(s string, f func(rune) bool) string
將字符串s首尾滿足函數f(r)==true的字符去掉返回
- func TrimLeft(s string, cutset string) string
將字符串s左邊包含cutset中的任一字符去掉返回
- func TrimLeftFunc(s string, f func(rune) bool) string
將字符串s左邊滿足函數f(r)==true的字符去掉返回
- func TrimPrefix(s, prefix string) string
將字符串s中前綴字符串prefix去掉返回
- func TrimRight(s string, cutset string) string
將字符串s右邊包含cutset中的任一字符去掉返回
- func TrimRightFunc(s string, f func(rune) bool) string
將字符串s右邊滿足函數f(r)==true的字符去掉返回
- func TrimSpace(s string) string
將字符串s首尾空白去掉返回
- func TrimSuffix(s, suffix string) string
將字符串s中后綴字符串prefix去掉返回