字符前的字符串拆分

标签 string go split substring slice

我是新手,一直在使用 split 来发挥我的优势。最近我遇到了一个问题,我想拆分一些东西,并将拆分字符保留在我的第二个 slice 中,而不是将其删除,或者像 SplitAfter 一样将其保留在第一个 slice 中。

例如下面的代码:

strings.Split("email@email.com", "@")

返回:["email", "email.com"]

strings.SplitAfter("email@email.com", "@")

返回:["email@", "email.com"]

获取 ["email", "@email.com"] 的最佳方式是什么?

最佳答案

使用strings.Index找到 @ 和 slice 得到两部分:

var part1, part2 string
if i := strings.Index(s, "@"); i >= 0 {
    part1, part2 = s[:i], s[i:]
} else {
    // handle case with no @
}

Run it on the playground .

关于字符前的字符串拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55212090/

相关文章:

python - 如何将列表拆分为由分隔符确定的 block ?

c - 使用 sscanf 将 C 字符串拆分为标记

go - 无法让 'go install' 在 OSX 上工作

go - 构建时出错,得到 : "suspect or "

multithreading - 有没有一种可靠的方法来确保 Go channel 不会在读取时阻塞?

java - 当我尝试拆分句子时出现错误

r - 如何按 R 中列中的次数拆分行?

c - C中基于字符串的链表产生段错误

javascript - 当元素在文本周围插入然后被删除时,HTML 中的文本会在 DOM 中 split /格式错误(但保留内部文本)

c - string是数组还是指针?