如何使用Go lang在另一个字符串中插入一个字符串

时间:2016-10-03 10:39:38

标签: string go

大多数编程语言都有一个允许我们将一个字符串插入另一个字符串的函数。例如,我可以将字符串Green和字符串HI,并执行操作Green.insert(HI,2)以获得恢复字符串GrHIeen。但是这样的功能并没有标准的GO lang库。

是否有任何Golang函数可用于在字符串中插入字符串?

例如

string = "</table></body></html>"

// I want Following Output

string = "</table><pagebreak /></body></html>"

3 个答案:

答案 0 :(得分:5)

您可以简单地对字符串使用切片操作:

package main

func main() {
    p := "green"
    index := 2
    q := p[:index] + "HI" + p[index:]
    fmt.Println(p, q)
}

工作示例:https://play.golang.org/p/01phuBKuBB

答案 1 :(得分:2)

您可以将第一个字符串转换为Sprintf的模板。它看起来像这样:

p := "</table>%s</body></html>"
out := fmt.Sprintf(p,"<pagebreak />")

此处的工作代码:https://play.golang.org/p/AInfyQwpy2

答案 2 :(得分:0)

我曾经使用runebytes.Buffer在两个索引之间插入<\b>粗体标签,并构建了如下的结果字符串。

for j:=0; j< len(resultstrIntervals);j++{

        startIndex:= resultstrIntervals[j].Start
        endIndex:= resultstrIntervals[j].End

        for i <= endIndex && i <= len(s) {

            if i == startIndex{
                buffer.WriteRune('<')
                buffer.WriteRune('b')
                buffer.WriteRune('>')


            }else if i == endIndex{

                buffer.WriteRune('<')
                buffer.WriteRune('/')
                buffer.WriteRune('b')
                buffer.WriteRune('>')

            }
            if i < len(strArr){
                buffer.WriteRune(strArr[i])
            }
            i++

        }

    }
    fmt.Print(buffer.String())

example

相关问题