Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何将多个字符串和int合并为单个字符串_String_Go - Fatal编程技术网

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

String 如何将多个字符串和int合并为单个字符串,string,go,String,Go,我是围棋的新手。我找不到任何显示如何将多个字符串合并为新字符串的官方文档 我期待的是: 输入:“键:,“值”,,键2:,100 输出:“键:值,键2:100” 如果可能的话,我想使用+来合并Java和Swift中的字符串。我喜欢使用fmt的Sprintf方法来处理这类事情。它的工作原理类似于Go或C中的Printf,只返回字符串。下面是一个例子: output := fmt.Sprintf("%s%s%s%d", "key:", "value&q

我是围棋的新手。我找不到任何显示如何将多个字符串合并为新字符串的官方文档

我期待的是:

输入
“键:
“值”
,键2:
100

输出
“键:值,键2:100”


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

我喜欢使用fmt的
Sprintf
方法来处理这类事情。它的工作原理类似于Go或C中的
Printf
,只返回字符串。下面是一个例子:

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

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

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

strings.Join vs fmt.Sprintf

BenchmarkFmt-4       2000000           685 ns/op
BenchmarkJoins-4     5000000           244 ns/op
var s1="abc"
var s2="def"
var num =100
ans:=fmt.Sprintf("%s%d%s", s1,num,s2);
fmt.Println(ans);
缓冲区


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

你可以简单地做到这一点:

import (
    "fmt" 
    "strconv"
)

func main() {


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

}
使用fmt.Sprintf()

另一种选择:

package main
import "fmt"

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

最后一个的可能重复项是整数。我可以用%d吗?@RobertYiJiang是的,我会用它来编辑。我没有意识到我在那里更改了输入的类型。如果您使用strconv.Itoa,那么您也可以将字符串与+@ColinPitrat连接起来,这是因为在运行编译器时出现了一个问题,strings.Join(2或3个元素的连接)使用+,但除此之外,它会创建一个字节片以实现更高效的连接。如果要连接两个以上的元素,我强烈建议使用strings.Join。