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")) 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