Go | 字串套件的函式與介紹
📑 目錄
💬 簡介 💡 常用函式分類與範例 1️⃣ 查詢與判斷 2️⃣ 替換與重複 3️⃣ 分割與合併 4️⃣ 大小寫轉換 5️⃣ 修剪與清理 📌 實務應用場景 🧰 小技巧補充 🎯 總結
💬 簡介 在各類程式開發中,字串處理幾乎是無所不在的需求。 Go 語言內建的 strings 標準套件提供了多種高效且語意清晰的字串操作函式,協助開發者快速進行查找、替換、分割、大小寫轉換等常見任務。
本篇將系統性介紹 strings 套件的常用函式與應用場景,搭配簡潔的範例,幫助你熟悉這組強大的工具。
圖片來源:Gophers
💡 常用函式分類與範例 1️⃣ 查詢與判斷
函式名稱
說明
Contains(s, substr)
字串中是否包含某子字串
HasPrefix(s, prefix)
是否以某字首開頭
HasSuffix(s, suffix)
是否以某字尾結尾
Index(s, substr)
回傳子字串的第一個出現位置
LastIndex(s, substr)
回傳子字串的最後出現位置
1 2 3 fmt.Println(strings.Contains("golang" , "go" )) fmt.Println(strings.HasPrefix("http://abc" , "http" )) fmt.Println(strings.Index("golang" , "a" ))
2️⃣ 替換與重複
函式名稱
說明
Replace(s, old, new, n)
替換指定子字串(n 為替換次數)
Repeat(s, count)
將字串重複指定次數
1 2 fmt.Println(strings.Replace("a-b-c" , "-" , "/" , -1 )) fmt.Println(strings.Repeat("go" , 3 ))
3️⃣ 分割與合併
函式名稱
說明
Split(s, sep)
以分隔符分割成子字串切片
Join(slice, sep)
將字串切片用分隔符合併成字串
Fields(s)
以空白分割,忽略連續空白
1 2 3 arr := strings.Split("a,b,c" , "," ) str := strings.Join([]string {"a" ,"b" }, "-" ) words := strings.Fields("a b\tc" )
4️⃣ 大小寫轉換
函式名稱
說明
ToUpper(s)
全部轉為大寫
ToLower(s)
全部轉為小寫
Title(s)
每個單字開頭大寫
1 2 fmt.Println(strings.ToUpper("go" )) fmt.Println(strings.Title("go lang" ))
5️⃣ 修剪與清理
函式名稱
說明
TrimSpace(s)
移除前後空白(含 \t \n)
Trim(s, cutset)
移除字串頭尾指定字元
TrimPrefix/TrimSuffix
移除開頭/結尾字串
1 2 3 fmt.Println(strings.TrimSpace(" hello\n" )) fmt.Println(strings.Trim("...hi..." , "." )) fmt.Println(strings.TrimPrefix("abcde" , "ab" ))
📌 實務應用場景 以下是一些實際應用 strings 套件的常見場景:
✅ 處理用戶輸入資料前的清理(TrimSpace、ToLower)
✅ 驗證 URL、Email 是否符合格式(HasPrefix、Contains)
✅ 檔案路徑分割與組合(Split、Join)
✅ 批次重命名文字內容(Replace)
✅ 將文字轉換為一致風格的顯示(Title)
🧰 小技巧補充
若要判斷某字串是否「等於不分大小寫」,可用 strings.EqualFold(a, b)
搭配 strconv 使用可將字串轉數字(字串處理前後常見)
若需處理 Unicode 或更進階的字元分析,可考慮 unicode/utf8 套件
🎯 總結 Go 的 strings 套件提供:
✅ 語意直觀的函式命名
✅ 強調效能與簡潔
✅ 支援常見字串處理需求
建議搭配其他標準套件如 fmt、strconv 與 regexp 使用,可構成一套完整的文字處理解決方案。
最後建議回顧一下 Go | 菜鳥教學 目錄,了解其章節內容。
註:以上參考了Go