ZetCode

Go 添加字符串

最后修改时间 2024 年 4 月 11 日

在本文中,我们将展示如何在 Golang 中连接字符串。

在 Go 中,字符串是只读字节切片。

在 Go 中添加字符串有几种方法

使用 + 运算符在 Go 中添加字符串

++= 运算符提供了连接字符串最简单的方法。+ 运算符既用于加数字,也用于加字符串;在编程中,我们称该运算符被重载了。

addoper.go
package main

import "fmt"

func main() {

    w1 := "an"
    w2 := " old"
    w3 := " falcon"

    msg := w1 + w2 + w3

    fmt.Println(msg)
}

使用 + 运算符添加两个字符串。

$ go run addoper.go 
an old falcon

在第二个示例中,我们使用了复合加法运算符。

addoper2.go
package main

import "fmt"

func main() {

    msg := "There are"

    msg += " three falcons"
    msg += " in the sky"

    fmt.Println(msg)
}

该示例使用 += 运算符构建消息。

$ go run addoper2.go 
There are three falcons in the sky

使用 strings.Join 在 Go 中添加字符串

string.Join 方法将切片中的元素连接起来,创建一个单个字符串。第二个参数是分隔符,它将被放置在结果字符串的元素之间。

joining.go
package main

import (
    "fmt"
    "strings"
)

func main() {

    s := []string{"There", "are", "two", "owls", "on", "the", "tree", "\n"}
    fmt.Printf(strings.Join(s, " "))
}

在代码示例中,我们通过连接多个单词来形成一条消息。单词之间用一个空格字符分隔。

$ go run joining.go 
There are two owls on the tree 

使用字符串格式化在 Go 中添加字符串

可以使用 Go 的字符串格式化函数来连接字符串:fmt.Sprintfmt.Sprintlnfmt.Sprintf

string_format.go
package main

import "fmt"

func main() {

    w1 := "an"
    w2 := "old"
    w3 := "falcon"

    msg := fmt.Sprintf("%s %s %s", w1, w2, w3)

    fmt.Println(msg)
}

我们使用 fmt.Sprintf 函数连接三个单词。

$ go run string_format.go 
an old falcon

使用 strings.Builder 在 Go 中添加字符串

strings.Builder 用于使用 Write 方法高效地构建字符串。

builder.go
package main

import (
    "fmt"
    "strings"
)

func main() {

    var builder strings.Builder

    builder.WriteString("There")
    builder.WriteString(" are")
    builder.WriteString(" two")
    builder.WriteString(" falcons")
    builder.WriteString(" in")
    builder.WriteString(" the")
    builder.WriteString(" sky")

    fmt.Println(builder.String())
}

该示例使用 strings.Builder 构建字符串。

builder.WriteString("There")

使用 WriteString 添加新字符串。

fmt.Println(builder.String())

String 返回累积的字符串。

使用 bytes.Buffer 在 Go 中添加字符串

Buffer 是一个具有 Read 和 Write 方法的可变大小的字节缓冲区。

bytesbuf.go
package main

import (
    "bytes"
    "fmt"
)

func main() {

    var buffer bytes.Buffer

    buffer.WriteString("a")
    buffer.WriteString(" beautiful")
    buffer.WriteString(" day")

    fmt.Println(buffer.String())
}

WriteString 方法将给定字符串的内容追加到缓冲区,并根据需要增长缓冲区。

fmt.Println(buffer.String())

String 方法将缓冲区未读取部分的内容作为字符串返回。

使用字节切片在 Go 中添加字符串

下面的示例使用字节切片连接字符串。

byteslice.go
package main

import (
    "fmt"
)

func main() {

    var s1 = "an"
    var s2 = " old"
    var s3 = " falcon"

    msg := make([]byte, 0)

    msg = append(msg, []byte(s1)...)
    msg = append(msg, []byte(s2)...)
    msg = append(msg, []byte(s3)...)

    fmt.Println(string(msg))
}

该示例添加了三个字符串。

msg := make([]byte, 0)

使用 make 函数创建了一个新的字节切片。

msg = append(msg, []byte(s1)...)

我们使用 byte 将字符串转换为字节切片,并使用 append 将其追加到 msg 切片。

fmt.Println(string(msg))

最后,我们使用 string 将字节切片转换为字符串。

来源

Go strings 包 - 参考

在本文中,我们展示了如何在 Golang 中添加字符串。

作者

我的名字是 Jan Bodnar,我是一名热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有超过十年的经验。

列出所有 Go 教程