gpt4 book ai didi

go - 将 []int 转换为字符串的单行器

转载 作者:IT老高 更新时间:2023-10-28 13:00:05 26 4
gpt4 key购买 nike

基本上我有 []int{1, 2, 3},我想要一个将其转换为字符串“1,2,3”的单行符(我需要分隔符自定义,有时是 .,有时是 等)。下面是我能想到的最好的。在网上搜索了一下,似乎没有找到更好的答案。

在大多数语言中都有对此的内置支持,例如:

python :

> A = [1, 2, 3]
> ", ".join([str(a) for a in A])
'1, 2, 3'

Go:

package main

import (
"bytes"
"fmt"
"strconv"
)

// Could not find a one-liner that does this :(.
func arrayToString(A []int, delim string) string {

var buffer bytes.Buffer
for i := 0; i < len(A); i++ {
buffer.WriteString(strconv.Itoa(A[i]))
if i != len(A)-1 {
buffer.WriteString(delim)
}
}

return buffer.String()
}

func main() {
A := []int{1, 2, 3}
fmt.Println(arrayToString(A, ", "))
}

Go 中肯定有一个实用程序可以让我使用单行代码来执行此操作吗?

我知道有 strings.Join(A, ", "),但只有当 A 已经是 []string 时才有效。

最佳答案

转换
A := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}

到一个单行分隔的字符串,如
"1,2,3,4,5,6,7,8,9"
使用:

strings.Trim(strings.Join(strings.Fields(fmt.Sprint(A)), delim), "[]")

或:

strings.Trim(strings.Join(strings.Split(fmt.Sprint(A), " "), delim), "[]")

或:

strings.Trim(strings.Replace(fmt.Sprint(A), " ", delim, -1), "[]")

并从一个函数中返回它,例如这个例子:

package main

import "fmt"
import "strings"

func arrayToString(a []int, delim string) string {
return strings.Trim(strings.Replace(fmt.Sprint(a), " ", delim, -1), "[]")
//return strings.Trim(strings.Join(strings.Split(fmt.Sprint(a), " "), delim), "[]")
//return strings.Trim(strings.Join(strings.Fields(fmt.Sprint(a)), delim), "[]")
}

func main() {
A := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}

fmt.Println(arrayToString(A, ",")) //1,2,3,4,5,6,7,8,9
}

要在逗号后包含一个空格,您可以调用 arrayToString(A, ", ") 或相反地将返回定义为 return strings.Trim(strings.Replace(fmt.Sprint( a), "", delim + "", -1), "[]") 强制将其插入分隔符之后。

关于go - 将 []int 转换为字符串的单行器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37532255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com