golang 将 "type []string" 转换为字符串
golang convert "type []string" to string
我确定这是一个简单的问题,但我一直碰到这个问题。我看其他人也是。
我看到有些人创建了一个 for
循环和 运行 通过切片来创建一个字符串,有没有更简单的方法将 []string
转换为 string
?
sprintf
会做吗?
您可以使用 strings.Join(arr []string, separator string) string
,就像我知道的几乎所有其他语言一样
这是一个简单的示例,您可以将其粘贴到主函数中:
stringArray := []string {"Hello","world","!"}
justString := strings.Join(stringArray," ")
fmt.Println(justString)
和 link 去 working example 在操场上。
或者使用非常简单的函数
simple function
Will Sprint
do it?
Yes indeed!
这是另一种转换为字符串的方法,如果您只关心它是一个字符串而不是它的具体外观(请参阅上面 strings.Join
的答案以获得更多灵活性)。
此方法(或 Sprintf
等变体)的优点是它可以(几乎)处理所有其他数据,例如 maps
和 structs
以及任何自定义类型实现了 fmt.Stringer
接口。
stringArray := []string {"Hello","world","!"}
justString := fmt.Sprint(stringArray)
这里是 link 到 working example。
导入字符串包,使用Join函数即可轻松完成。您需要传递字符串切片和分隔字符串中元素所需的分隔符。 (示例:space 或逗号)
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
如果你不关心分隔符,你可以使用path
:
package main
import "path"
func main() {
a := []string{"south", "north"}
s := path.Join(a...)
println(s == "south/north")
}
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
在上面的代码中,我们首先定义了一个字符串切片,然后使用reflect包来判断切片的数据类型。
我们导入了“strings”模块。使用 strings.Join() 方法,我们将字符串切片的所有元素组合成一个字符串。因此,Golang string.Join() 函数将切片转换为字符串。我们已经通过 space(” “) 作为分隔符。所以我们将通过 space.
连接切片元素
strings.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())
}
我确定这是一个简单的问题,但我一直碰到这个问题。我看其他人也是。
我看到有些人创建了一个 for
循环和 运行 通过切片来创建一个字符串,有没有更简单的方法将 []string
转换为 string
?
sprintf
会做吗?
您可以使用 strings.Join(arr []string, separator string) string
,就像我知道的几乎所有其他语言一样
这是一个简单的示例,您可以将其粘贴到主函数中:
stringArray := []string {"Hello","world","!"}
justString := strings.Join(stringArray," ")
fmt.Println(justString)
和 link 去 working example 在操场上。
或者使用非常简单的函数 simple function
Will
Sprint
do it?Yes indeed!
这是另一种转换为字符串的方法,如果您只关心它是一个字符串而不是它的具体外观(请参阅上面 strings.Join
的答案以获得更多灵活性)。
此方法(或 Sprintf
等变体)的优点是它可以(几乎)处理所有其他数据,例如 maps
和 structs
以及任何自定义类型实现了 fmt.Stringer
接口。
stringArray := []string {"Hello","world","!"}
justString := fmt.Sprint(stringArray)
这里是 link 到 working example。
导入字符串包,使用Join函数即可轻松完成。您需要传递字符串切片和分隔字符串中元素所需的分隔符。 (示例:space 或逗号)
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
如果你不关心分隔符,你可以使用path
:
package main
import "path"
func main() {
a := []string{"south", "north"}
s := path.Join(a...)
println(s == "south/north")
}
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
在上面的代码中,我们首先定义了一个字符串切片,然后使用reflect包来判断切片的数据类型。 我们导入了“strings”模块。使用 strings.Join() 方法,我们将字符串切片的所有元素组合成一个字符串。因此,Golang string.Join() 函数将切片转换为字符串。我们已经通过 space(” “) 作为分隔符。所以我们将通过 space.
连接切片元素strings.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())
}