2 回答
TA贡献1906条经验 获得超10个赞
只需使用strings.Split():
s := "foo/bar/file.txt"
parts := strings.Split(s, "/")
fmt.Println(parts[0], len(parts))
fmt.Println(parts)
输出(在Go Playground上试试):
foo 3
[foo bar file.txt]
笔记:
如果要按当前操作系统的路径分隔符进行拆分,请os.PathSeparator用作分隔符:
parts := strings.Split(s, string(os.PathSeparator))
filepath.SplitList()将多个连接的路径拆分为单独的路径。它不会将一个路径拆分为文件夹和文件。例如:
fmt.Println("On Unix:", filepath.SplitList("/a/b/c:/usr/bin"))
输出:
On Unix: [/a/b/c /usr/bin]
TA贡献1844条经验 获得超8个赞
请注意,如果您只需要第一部分,strings.SplitN我的测试至少要快 10 倍:
package main
import "strings"
func main() {
parts := strings.SplitN("foo/bar/file.txt", "/", 2)
println(parts[0] == "foo")
}
https://golang.org/pkg/strings#SplitN
- 2 回答
- 0 关注
- 259 浏览
添加回答
举报
