Like Share Discussion Bookmark Smile

J.J. Huang   2025-06-25   Getting Started Golang 07.套件   瀏覽次數:次   DMCA.com Protection Status

Go | 字串套件的函式與介紹

💬 簡介

在各類程式開發中,字串處理幾乎是無所不在的需求。
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"))       // true
fmt.Println(strings.HasPrefix("http://abc", "http")) // true
fmt.Println(strings.Index("golang", "a")) // 3

2️⃣ 替換與重複

函式名稱 說明
Replace(s, old, new, n) 替換指定子字串(n 為替換次數)
Repeat(s, count) 將字串重複指定次數
1
2
fmt.Println(strings.Replace("a-b-c", "-", "/", -1)) // a/b/c
fmt.Println(strings.Repeat("go", 3)) // gogogo

3️⃣ 分割與合併

函式名稱 說明
Split(s, sep) 以分隔符分割成子字串切片
Join(slice, sep) 將字串切片用分隔符合併成字串
Fields(s) 以空白分割,忽略連續空白
1
2
3
arr := strings.Split("a,b,c", ",")      // [a b c]
str := strings.Join([]string{"a","b"}, "-") // a-b
words := strings.Fields("a b\tc") // [a b c]

4️⃣ 大小寫轉換

函式名稱 說明
ToUpper(s) 全部轉為大寫
ToLower(s) 全部轉為小寫
Title(s) 每個單字開頭大寫
1
2
fmt.Println(strings.ToUpper("go"))   // GO
fmt.Println(strings.Title("go lang")) // Go Lang

5️⃣ 修剪與清理

函式名稱 說明
TrimSpace(s) 移除前後空白(含 \t \n)
Trim(s, cutset) 移除字串頭尾指定字元
TrimPrefix/TrimSuffix 移除開頭/結尾字串
1
2
3
fmt.Println(strings.TrimSpace("  hello\n"))   // hello
fmt.Println(strings.Trim("...hi...", ".")) // hi
fmt.Println(strings.TrimPrefix("abcde", "ab")) // cde

📌 實務應用場景

以下是一些實際應用 strings 套件的常見場景:

  • ✅ 處理用戶輸入資料前的清理(TrimSpace、ToLower)
  • ✅ 驗證 URL、Email 是否符合格式(HasPrefix、Contains)
  • ✅ 檔案路徑分割與組合(Split、Join)
  • ✅ 批次重命名文字內容(Replace)
  • ✅ 將文字轉換為一致風格的顯示(Title)

🧰 小技巧補充

  • 若要判斷某字串是否「等於不分大小寫」,可用 strings.EqualFold(a, b)
  • 搭配 strconv 使用可將字串轉數字(字串處理前後常見)
  • 若需處理 Unicode 或更進階的字元分析,可考慮 unicode/utf8 套件

🎯 總結

Go 的 strings 套件提供:

  • ✅ 語意直觀的函式命名
  • ✅ 強調效能與簡潔
  • ✅ 支援常見字串處理需求

建議搭配其他標準套件如 fmtstrconvregexp 使用,可構成一套完整的文字處理解決方案。

最後建議回顧一下 Go | 菜鳥教學 目錄,了解其章節內容。


註:以上參考了
Go