附加逗号分隔字符串的有效方法

我想知道是否有一个有效的方法分隔不同的字符串逗号作为分隔符

Java8StringUtils.join(java.lang.Iterable,char)

对于Kotlin我只发现了joinToString ,它从数组/列表转换为字符串。 据我所知, joinToString转换整个列表/数组。 如果我想从数组转换为逗号分隔的字符串不是所有的数字? 怎么会这样呢? Kotlin有没有短暂而优雅的东西(显然,我可以为此做出自己的function,但是我只是想知道)。

 list.forEachIndexed { index, item -> if (item.isGreen) { ... } } 

 val greenString = list.filter(ItemClass::isGreen).joinToString() 

在这里, ItemClass是定义isGreen函数或属性的项目的types。 ItemClass::isGreen是对此方法/属性的引用。

你也可以使用lambda来达到相同的效果(参见其他答案)。


编辑 :你可以用transform参数指定对象应该如何用joinToString函数中的字符串表示。
因为这是最后一个参数,所以可以在正常的圆括号之外给出:

 list.filter(ItemClass::isGreen).joinToString() { it.content.text } 

你甚至可以把所有括号都放在一起,但是可以用于其他参数。
您不能在这里使用引用样式(::),因为它是一个复杂的expression式,而不是直接引用特定的方法或属性。

对于这个例子,你可以这样做:

 list .filter { it.isGreen } .joinToString()