我需要在scala中连接wrappedarray中的字符串。我能在老师的帮助下做这件事 List
但这不是我要做的。我想要一个专门为wrappedarray设计的解决方案,可以在连接时添加/删除元素。我必须使用这个函数作为通过sparksql转换数据的自定义项 collect_list
. 这就是我被迫使用wrappedarray的原因。
例如->
WrappedArray("I","love","coding")
Output : String = I : love : coding
这只是一个添加冒号的示例。我面临着各种类型的问题,而匹配的情况下 Package 数组。
import scala.annotation.tailrec
object tailRecursionString {
def getString(ints :scala.collection.mutable.WrappedArray[String]): String = {
@tailrec
def sumAccumulator(ints: scala.collection.mutable.WrappedArray[String], accum: String): String = {
ints match {
case Nil : => accum
case x :: tail => sumAccumulator(tail, accum + x)
}
}
sumAccumulator(ints, "[") + "]"
}
def main(args: Array[String]): Unit = {
val list : scala.collection.mutable.WrappedArray[String] = Array("kumar","sambhav","is","a","good","boy")
val sum = getString(list)
println(sum)
}
}
3条答案
按热度按时间icnyk63a1#
你可以为我写
Seq
一般来说:}
作为
WrappedArray
也是一个Seq
,这样就行了pbwdgjma2#
如果您想应用一个过滤器,您仍然可以使用过滤器,并实现相同的效果。
5anewei63#
你问题的原因是使用
WrappedArray
哪个还没有unapply
方法。模式匹配使用unapply
方法,您可以在scala文档中阅读更多关于此方法的信息。只需将wrappedarray替换为数组和匹配的表达式,它就可以工作了: