字符前的字符串分割

我是新手,对我来说一直在使用split。 最近,我遇到了一个问题,我想拆分一些东西,然后将拆分的char保留在第二个切片中,而不是删除它,或者像SplitAfter一样将其保留在第一个切片中。</ p>

例如 以下代码:</ p>

  strings.Split(“ email@email.com”,“ @”)
</ code> </ pre>

返回: [“ email”,“ email.com”] </ code> </ p>

  strings.SplitAfter(“ email@email.com”,“ @”  )
</ code> </ pre>

返回: [“ email @”,“ email.com”] </ code> </ p>

</ p>
</ div>是获取 [“ email”,“ @ email.com”] </ code>的最佳方法是什么?

展开原文

原文

I'm new to go and have been using split to my advantage. Recently I came across a problem I wanted to split something, and keep the splitting char in my second slice rather than removing it, or leaving it in the first slice as with SplitAfter.

For example the following code:

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

returned: ["email", "email.com"]

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

returned: ["email@", "email.com"]

What's the best way to get ["email", "@email.com"]?

duan48961411
duan48961411 他所做的基本上就是我所做的,但是他给了您很好的功能。
一年多之前 回复
dongmei9203
dongmei9203 最简单的方法是将分隔符仅“附加”到返回切片中除第一项之外的所有项。play.golang.com/p/sA33rVeJjRt
一年多之前 回复

2个回答

Use strings.Index to find the @ and slice to get the two parts:

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.

douxian0279
douxian0279 根据您的建议,这是一个更完整的实现:play.golang.org/p/P4rZvBAuSih
一年多之前 回复



这对您有用吗?</ p>

  s:= strings.Split(“  email@email.com“,” @“)
地址,域:= s [0],” @“ + s [1]
fmt.Println(地址,域)
//电子邮件@ email.com
</ code> </ pre>

然后梳理并创建一个字符串</ p>

  var buffer bytes.Buffer 
buffer.WriteString(address)
buffer。 WriteString(domain)
result:= buffer.String()
fmt.Println(result)
// email@email.com
</ code> </ pre>
</ div>

展开原文

原文

Could this work for you?

s := strings.Split("email@email.com", "@")
address, domain := s[0], "@"+s[1]
fmt.Println(address, domain)
// email @email.com

Then combing and creating a string

var buffer bytes.Buffer
buffer.WriteString(address)
buffer.WriteString(domain)
result := buffer.String()
fmt.Println(result)
// email@email.com

douke3442
douke3442 如果字符串中不包含@,则此答案中的代码将出现恐慌。
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问