如何递归地将字符串连接到golang中的字符串类型数组 [英] How to recursively join a string to an array of type string in golang

查看:118
本文介绍了如何递归地将字符串连接到golang中的字符串类型数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在这方面挣扎了很长时间。我基本上想创建一个递归地将一个字符串连接到一个数组的函数。



像这样:


加入,[one,two,three]
应该看起来像这样的一,二,三


解决方案

已经有加入函数 strings 模块。但它不是递归的,如果你需要递归,你可以像这样做:

 包主

导入fmt

func join_helper(splitter string,arrOfStrings [] string,res string)string {
if len(arrOfStrings)== 0 {
return res
}

if len(arrOfStrings)== 1 {
return join_helper(splitter,arrOfStrings [1:],res + arrOfStrings [0])
}

return join_helper(splitter,arrOfStrings [1:],res + arrOfStrings [0] + splitter)
}
$ b func join(splitter string,arrOfStrings [] string)string {
return join_helper(splitter,arrOfStrings,)
}

func main(){
fmt.Println(join(,,[] string { a,b,c,d}))
}


I am struggling with this for quite some time. I basically want to create a function that recursively join a string to an array.

Like this :

join ", " ["one","two","three"] should look like this "one, two, three"

解决方案

There is already Join function in strings module. But it's not recursive, if you need recursive you can make it like this:

package main

import "fmt"

func join_helper(splitter string, arrOfStrings []string, res string) string {
    if len(arrOfStrings) == 0 {
       return res
    }

    if len(arrOfStrings) == 1 {
       return join_helper(splitter, arrOfStrings[1:], res + arrOfStrings[0])
    }

    return join_helper(splitter, arrOfStrings[1:], res + arrOfStrings[0] + splitter)
}

func join(splitter string, arrOfStrings []string) string {
    return join_helper(splitter, arrOfStrings, "")
}

func main(){
    fmt.Println(join(",", []string{"a", "b", "c", "d"}))
}

这篇关于如何递归地将字符串连接到golang中的字符串类型数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆