如何将一段字符串连接成一个字符串?
Posted
技术标签:
【中文标题】如何将一段字符串连接成一个字符串?【英文标题】:How to join a slice of strings into a single string? 【发布时间】:2015-05-02 04:11:09 【问题描述】:package main
import (
"fmt"
"strings"
)
func main()
reg := [...]string "a","b","c"
fmt.Println(strings.Join(reg,","))
给我一个错误:
prog.go:10: 不能在 strings.Join 的参数中使用 reg (type [3]string) 作为 type []string
有没有比循环和添加到 var 更直接/更好的方法?
【问题讨论】:
为什么不直接使用reg := []string "a","b","c"
?
【参考方案1】:
你的问题的标题是:
如何将一段字符串拼接成一个字符串?
但实际上,reg
不是一个切片,而是一个长度为三的数组。 [...]string
只是(在这种情况下)[3]string
的语法糖。
要得到一个实际的切片,你应该写:
reg := []string "a","b","c"
(试试看:https://play.golang.org/p/vqU5VtDilJ。)
顺便说一句,如果您确实需要将一个字符串数组连接成一个字符串,您可以通过添加[:]
从数组中获取一个切片,如下所示:
fmt.Println(strings.Join(reg[:], ","))
(试试看:https://play.golang.org/p/zy8KyC8OTuJ。)
【讨论】:
请在答案本身中提供工作代码,游乐场是一个加号,但不足以接受可接受的答案;-)。泰! @shadyyx:我同意游乐场链接是严格补充的;但我不确定您认为正确答案中缺少什么。 OP 的唯一错误在第 10 行,我提供了该行的更正版本以及解释。 (您是否建议我应该将他/她的整个示例程序复制到答案中?如果是这样,那么--我不同意。) "试图将切片加入字符串" 您的解决方案仅适用于 字符串切片,而不适用于一般切片类型。【参考方案2】:这在 2018 年仍然适用。
到字符串
import strings
stringFiles := strings.Join(fileSlice[:], ",")
再次回到切片
import strings
fileSlice := strings.Split(stringFiles, ",")
【讨论】:
【参考方案3】:使用切片,而不是数组。只需使用
创建它reg := []string "a","b","c"
另一种方法是在加入时将数组转换为切片:
fmt.Println(strings.Join(reg[:],","))
阅读the Go blog about the differences between slices and arrays。
【讨论】:
以上是关于如何将一段字符串连接成一个字符串?的主要内容,如果未能解决你的问题,请参考以下文章