Strings.Split用于按分隔符拆分字符串,返回切片。例如strings.Split(“apple,banana”, “,”)得[“apple” “banana”];若分隔符不存在则返回原字符串切片,空字符串输入返回[“”],空分隔符将逐字符拆分。解析路径时需注意首尾空元素,可手动过滤。掌握其行为可高效处理csv、路径解析等场景。

在golang中,strings.Split 是一个常用函数,用于将字符串按照指定的分隔符拆分成一个字符串切片。这个函数非常适用于处理 CSV 数据、解析路径、分割参数等场景。
基本用法
strings.Split(s, sep) 接收两个参数:要分割的字符串 s 和作为分隔符的字符串 sep,返回一个 []string 类型的切片。
例如,将一个逗号分隔的字符串拆分为多个部分:
package main import ( "fmt" "strings" ) func main() { str := "apple,banana,grape" parts := strings.Split(str, ",") fmt.Println(parts) // 输出: [apple banana grape] }
处理常见情况
使用 strings.Split 时,有一些边界情况需要注意:
立即学习“go语言免费学习笔记(深入)”;
- 如果分隔符不存在,返回原字符串作为一个元素的切片
- 如果原字符串为空,返回包含一个空字符串的切片
- 如果分隔符为空字符串(””),则将每个字符单独拆分
fmt.Println(strings.Split("hello", "x")) // [hello] fmt.Println(strings.Split("", ",")) // [""] fmt.Println(strings.Split("go", "")) // [g o]
实际应用场景
在实际开发中,常用于解析用户输入或配置项。比如解析 URL 路径:
path := "/user/profile/settings" segments := strings.Split(path, "/") // 结果: ["", "user", "profile", "settings"] // 注意开头会有一个空字符串,因为路径以 "/" 开头
若想忽略空字符串,可以配合循环过滤:
var filtered []string for _, s := range segments { if s != "" { filtered = append(filtered, s) } } fmt.Println(filtered) // [user profile settings]
基本上就这些。掌握 strings.Split 的使用和边界行为,能让你更高效地处理字符串分割任务。不复杂但容易忽略细节。


