天天看點

Golang 中的 strings 包詳解(四):常用函數

作者:路多辛

Golang 中的 strings 包是處理字元串的标準庫之一,之前講解了 strings.Reader、strings.Builder 和 strings.Replcer 這個幾個結構的使用方法、特性和使用場景,本文介紹一下 strings 包中的常用函數。

字元串查詢

  • Contains(s, substr string) bool:判斷字元串 s 中是否包含子串 substr,傳回布爾值(類似的還有 ContainsAny和ContainsRune)。
  • Count(s, substr string) int:統計字元串 s 中子串 substr 出現的次數。
  • HasPrefix(s, prefix string) bool:判斷字元串 s 是否以 prefix 開頭,傳回布爾值。
  • HasSuffix(s, suffix string) bool:判斷字元串 s 是否以 suffix 結尾,傳回布爾值。
  • Index(s, substr string) int:傳回字元串 s 中子串 substr 第一次出現的位置,如果沒有找到則傳回-1(類似的還有 IndexAny、IndexByte 和 IndexFunc)。
  • LastIndex(s, substr string) int:傳回字元串 s 中子串 substr 最後一次出現的位置,如果沒有找到則傳回-1(類似的還有 LastIndexAny、LastIndexByte和LastIndexFunc)。

字元串比較

  • Compare(a, b string) int:比較字元串 a 和字元串 b,在 a<b 時傳回-1,在a>b 時傳回1,在a=b 時傳回0。
  • EqualFold(s, t string) bool 用于判斷兩個字元串在忽略字母大小寫的情況下是否相等。

字元串轉換

  • ToLower(s string) string:将字元串 s 中的所有字母轉換為小寫(類似的還有 ToLowerSpecial)。
  • ToUpper(s string) string:将字元串 s 中的所有字母轉換為大寫(類似的還有 ToUpperSpecial)。
  • ToTitle(s string) string:将字元串 s 中的每個單詞的首字母轉換為大寫(類似的還有 ToTitleSpecial)。
  • Trim(s string, cutset string) string:去除字元串 s 兩側的 cutset 字元集中的字元(類似的還有 TrimLeft、TrimLeftFunc、TrimRight、TrimRightFunc、TrimFunc、TrimPrefix、TrimSuffix)。
  • TrimSpace(s string) string:去除字元串 s 兩側的空格符(或其他 unicode.IsSpace 傳回 true 的字元)。
  • Clone(s string) string 用于建立并傳回一個與給定字元串相同的字元串副本,指向不同的記憶體位址

字元串替換、拆分、和拼接

  • Replace(s, old, new string, n int) string:将字元串 s 中的前 n 個 old 替換為 new,n<0 時則替換所有 old 為 new。
  • ReplaceAll(s, old, new string) string:将字元串 s 中的所有 old 替換為 new。
  • Split(s, sep string) []string:将字元串 s 按照 sep 分割成字元串切片(類似還有 SplitN)。
  • SplitAfter(s, sep string) []string:将字元串 s 按照 sep 分割成字元串切片,并保留 sep(類似還有SplitAfterN)。
  • Fields(s string) []string:将字元串s按照空格分割成多個字元串并傳回結果(類似還有 FieldsFunc)。
  • Join(elems []string, sep string) string:将一個字元串切片中的所有元素用指定的分隔符連接配接起來。
  • Repeat(s string, count int) string:将一個字元串重複指定的次數後傳回新的字元串。
  • Cut(s, sep string) (before, after string, found bool) 剪切掉首次出現在 s 中的字元串 sep,傳回 sep 前後的部分。
  • Map(mapping func(rune) rune, s string) string 用于将某個字元轉換為其他字元。

小結

strings 包提供了豐富的字元串操作函數,大大友善了字元串相關的操作,本文隻是簡單介紹了一些常用的函數,如果要深入了解還需要親自體會和使用。