为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Golang的字符串中每X个字符插入一个字符?

如何在Golang的字符串中每X个字符插入一个字符?

Go
红糖糍粑 2021-11-22 15:22:48
目的:在 Golang 的字符串中每 x 个字符插入一个字符输入: helloworldhelloworldhelloworld预期输出: hello-world-hello-world-hello-world尝试尝试一package mainimport (    "fmt"    "strings")func main() {    s := "helloworldhelloworldhelloworld"    s = strings.Replace(s, "world", ",", -1)    fmt.Println(s)}结果是: hello,hello,hello,尝试二计算字符数For循环如果 X=5 则插入一个 -尝试三扫描结合加入问题尝试二和三的原因目前没有包含代码片段,是我还在思考应该用什么方法在Golang的字符串中每X个字符插入一个字符。
查看完整描述

3 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

https://play.golang.org/p/HEGbe7radf


这个函数只是插入'-'每个第N个元素


func insertNth(s string,n int) string {

    var buffer bytes.Buffer

    var n_1 = n - 1

    var l_1 = len(s) - 1

    for i,rune := range s {

       buffer.WriteRune(rune)

       if i % n == n_1 && i != l_1  {

          buffer.WriteRune('-')

       }

    }

    return buffer.String()

}


查看完整回答
反对 回复 2021-11-22
?
梦里花落0921

TA贡献1772条经验 获得超5个赞

我觉得以下解决方案值得一提:


package main


import "fmt"


var s = "helloworldhelloworldhelloworld"


func main() {

    for i := 5; i < len(s); i += 6 {

        s = s[:i] + "-" + s[i:]

    }

    fmt.Println(s)

}

https://play.golang.org/p/aMXOTgiNHf


查看完整回答
反对 回复 2021-11-22
?
慕标5832272

TA贡献1966条经验 获得超4个赞

根据 Go 文档,字符串是只读的字节片。. 考虑到这一点,就会出现一个问题。你用的是什么字符集?你可以在这里和这里看到一些事情变得奇怪的例子。


尽管复杂,但仍然有一个简单的答案


s = strings.Replace(s, "hello", "hello-", -1)

s = strings.Replace(s, "world", "world-", -1)


查看完整回答
反对 回复 2021-11-22
  • 3 回答
  • 0 关注
  • 271 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信