如何将多个字符串和int合并为一个字符串

时间:2016-02-25 00:14:10

标签: string go

我是Go的新手。我找不到任何官方文档,展示如何将多个字符串合并为一个新字符串。

我期待的是:

输入"key:""value"", key2:"100

输出"Key:value, key2:100"

如果可能,我想使用+来合并Java和Swift中的字符串。

4 个答案:

答案 0 :(得分:51)

我喜欢使用fmt的Sprintf方法来处理这类事情。它与Go或C中的普通Printf一样,只返回一个字符串。这是一个例子;

output := fmt.Sprintf("%s%s%s%d", "key:", "value", ", key2:", 100)

转到fmt.Sprintf

的文档

答案 1 :(得分:17)

你可以使用strings.Join,这几乎比fmt.Sprintf快3倍。但它的可读性较差。

output := strings.Join([]string{"key:", "value", ", key2:", strconv.Itoa(100)}, "")

请参阅https://play.golang.org/p/AqiLz3oRVq

strings.Join vs fmt.Sprintf

BenchmarkFmt-4       2000000           685 ns/op
BenchmarkJoins-4     5000000           244 ns/op

<强>缓冲器

如果你需要合并很多字符串,我会考虑使用缓冲区而不是上面提到的那些解决方案。

答案 2 :(得分:2)

您可以简单地执行以下操作:

import (
    "fmt" 
    "strconv"
)

func main() {


     result:="str1"+"str2"+strconv.Itoa(123)+"str3"+strconv.Itoa(12)
     fmt.Println(result)

}

使用fmt.Sprintf()

var s1="abc"
var s2="def"
var num =100
ans:=fmt.Sprintf("%s%d%s", s1,num,s2);
fmt.Println(ans);

答案 3 :(得分:0)

另一种选择:

package main
import "fmt"

func main() {
   s := fmt.Sprint("key:", "value", ", key2:", 100)
   println(s)
}

https://golang.org/pkg/fmt#Sprint