go語言strings庫總結

最近由于用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去掉返回

參考文獻

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容