我看到有些人创建了一个for循环,并运行了一个切片来创建一个字符串,有没有更简单的方法来将[]string转换为string?sprintf会做到吗?
for
[]string
string
sprintf
s8vozzvw1#
您可以使用strings.Join(arr \[\]string, separator string) string。
strings.Join(arr \[\]string, separator string) string
tct7dpnv2#
这是一个简单的例子,你可以把它粘贴到main函数中:
stringArray := []string {"Hello","world","!"} justString := strings.Join(stringArray," ") fmt.Println(justString)
并链接到操场上的working example。或者使用非常简单的函数simple function
moiiocjp3#
Sprint会做到吗?"没错"如果您只关心字符串,而不关心它的具体外观,下面是另一种转换为字符串的方法(请参阅上面strings.Join的答案,以获得更多灵活性)。此方法(或Sprintf等变体)的优点是,它(几乎)可以处理所有其他数据,如maps和structs以及实现fmt.Stringer接口的任何自定义类型。
Sprint
strings.Join
Sprintf
maps
structs
fmt.Stringer
stringArray := []string {"Hello","world","!"} justString := fmt.Sprint(stringArray)
这里是working example的链接。
j8ag8udp4#
这可以很容易地通过导入字符串包使用Join函数来完成。你需要传递字符串切片和分隔符来分隔字符串中的元素。(例如:空格或逗号)
func Join(elems []string, sep string) string
package main import ( "fmt" "strings" ) func main() { sliceStr := []string{"a","b","c","d"} str := strings.Join(sliceStr,", ") fmt.Println(str) } //output: a, b, c, d
ekqde3dh5#
如果不关心分隔符,可以使用path:
path
package main import "path" func main() { a := []string{"south", "north"} s := path.Join(a...) println(s == "south/north") }
https://golang.org/pkg/path#Join
nwsw7zdq6#
package main import ( "fmt" "reflect" "strings" ) func main() { str1 := []string{"Trump", "In", "India", "On", "Feb 25"} fmt.Println(str1) fmt.Println(reflect.TypeOf(str1)) str2 := strings.Join(str1, " ") fmt.Println(str2) fmt.Println(reflect.TypeOf(str2)) str3 := strings.Join(str1, ", ") fmt.Println(str3) fmt.Println(reflect.TypeOf(str3)) }
下面是上述程序的输出:-
go run hello.go [Trump In India On Feb 25] []string Trump In India On Feb 25 string Trump, In, India, On, Feb 25 string
在上面的代码中,我们首先定义了一个string切片,然后使用reflect包来确定切片的数据类型。我们导入了“strings”模块。()方法,并将字符串切片的所有元素组合成一个字符串。因此,join()函数,将切片转换为字符串。我们传递了空格(““)作为分隔符。所以我们将用空格连接切片元素。字符串的第二个参数。Join()是分隔符。如果没有分隔符,请使用空字符串文字。在下一步中,我们再次使用TypeOf()函数来检查数据类型。然后我们再次使用了Golang string.Join()函数,但这次我们传递了(,)逗号。因此,将返回命令分隔的值,这也是一种字符串类型。所以,如果你想在Golang中得到CSV值,那么你可以使用Go string.Join()方法。
您也可以尝试使用函数:-
// abc.go package main type deck []string func (cards deck) toString() string { // converts slice to string return strings.Join([]string(cards), ",") } //main.go package main import "fmt" func main() { cards := []string {"Trump", "In", "India", "On", "Feb 25"} fmt.Println(cards.toString()) }
6条答案
按热度按时间s8vozzvw1#
您可以使用
strings.Join(arr \[\]string, separator string) string
。tct7dpnv2#
这是一个简单的例子,你可以把它粘贴到main函数中:
并链接到操场上的working example。
或者使用非常简单的函数simple function
moiiocjp3#
Sprint
会做到吗?"没错"
如果您只关心字符串,而不关心它的具体外观,下面是另一种转换为字符串的方法(请参阅上面
strings.Join
的答案,以获得更多灵活性)。此方法(或
Sprintf
等变体)的优点是,它(几乎)可以处理所有其他数据,如maps
和structs
以及实现fmt.Stringer
接口的任何自定义类型。这里是working example的链接。
j8ag8udp4#
这可以很容易地通过导入字符串包使用Join函数来完成。你需要传递字符串切片和分隔符来分隔字符串中的元素。(例如:空格或逗号)
ekqde3dh5#
如果不关心分隔符,可以使用
path
:https://golang.org/pkg/path#Join
nwsw7zdq6#
下面是上述程序的输出:-
在上面的代码中,我们首先定义了一个string切片,然后使用reflect包来确定切片的数据类型。我们导入了“strings”模块。()方法,并将字符串切片的所有元素组合成一个字符串。因此,join()函数,将切片转换为字符串。我们传递了空格(““)作为分隔符。所以我们将用空格连接切片元素。
字符串的第二个参数。Join()是分隔符。如果没有分隔符,请使用空字符串文字。
在下一步中,我们再次使用TypeOf()函数来检查数据类型。
然后我们再次使用了Golang string.Join()函数,但这次我们传递了(,)逗号。因此,将返回命令分隔的值,这也是一种字符串类型。
所以,如果你想在Golang中得到CSV值,那么你可以使用Go string.Join()方法。
您也可以尝试使用函数:-