登录
首页 >  Golang >  Go问答

使用Go语言在字符串中使用最后一个分隔符进行分割

来源:stackoverflow

时间:2024-03-23 08:00:35 390浏览 收藏

使用 Go 语言,可以通过 `path.Dir` 函数分割字符串,该函数专门用于处理路径操作。此函数会返回字符串中最后一个分隔符(`/`)之前的所有内容。此外,对于非路径字符串的分割,可以使用 `strings.LastIndex` 函数找到最后一个分隔符的位置,然后根据该位置对字符串进行分割。

问题内容

我试图通过 golang 中最后一次出现的分隔符 (/) 来分割字符串

例如,我有一个字符串“a/b/c/d”,执行分割后,我想要一个如下的字符串数组

[
"a/b/c",
"a/b"
"a"
]

我尝试探索字符串包,但找不到任何执行此操作的函数

func main() {
    fmt.Printf("%q\n", strings.Split("a/b/c/d/e", "/"))
}

我可以知道处理这个问题的方法吗?


解决方案


由于这是用于路径操作,并且看起来您不需要尾随路径分隔符,因此 path.Dir 会执行您要查找的操作:

fmt.println(path.dir("a/b/c/d/e"))
// a/b/c/d

如果这是专门针对文件系统路径的,您将需要使用 filepath 包来正确处理多个路径分隔符。

仅在最后一次出现时分割任何字符串,使用 strings.lastindex

import (
    "fmt"
    "strings"
)

func main() {
    x := "a_ab_daqe_sd_ew"
    lastInd := strings.LastIndex(x, "_")
    fmt.Println(x[:lastInd]) // o/p: a_ab_daqe_sd
    fmt.Println(x[lastInd+1:]) // o/p: ew
}

注意,strings.lastindex 如果子字符串通过则返回 -1(在上面的示例中为“_”)未找到

好了,本文到此结束,带大家了解了《使用Go语言在字符串中使用最后一个分隔符进行分割》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>