猿问

在golang中最后一个出现分隔符的地方分割一个字符串

我正在尝试通过golang中最后一个出现的分隔符(/)来拆分字符串


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


[

"a/b/c",

"a/b"

"a"

]

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


func main() {

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

}

我可以知道一种解决方法吗?


蓝山帝景
浏览 1258回答 3
3回答

一只甜甜圈

由于这是用于路径操作的,并且看起来您不需要尾随路径分隔符,因此可以path.Dir执行您想要的操作:fmt.Println(path.Dir("a/b/c/d/e"))// a/b/c/d如果这是专门针对文件系统路径的,则您将要使用该filepath包来正确处理多个路径分隔符。

慕盖茨4494581

要仅在最后一次出现时拆分任何字符串,请使用 strings.LastIndeximport (    "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
随时随地看视频慕课网APP

相关分类

Go
我要回答