我有一个带有输入参数的函数:数字和字符串列表,例如:(1, ListString)
我需要它返回一个新的字符串列表,如下所示:
[["1","name1"], ["1","name2"]]
对于输入字符串列表中的每个字符串,我需要将其放置在该结构中,因此我构建了以下内容:
def buildStringForproductsByCatView(tenantId:String, cat:List[String]):List[String]=
{
var tempList= List[String]()//(cat.foreach(x => "[[\"1\",\""+x+"\"]]"))
cat.foreach(x => println(("[[\"1\",\""+x+"\"]]")))
cat.foreach(x => tempList + ("[[\"1\",\""+x+"\"]]"))
println(tempList.mkString(","))
tempList
}
列表没有填满项目,我尝试了多种方法,但无法获取它。
打印线工作正常,我得到这个:
[["1","1"]]
[["1","cat1"]]
我只想将它们添加到新的字符串列表中..
最佳答案
您的代码中有两处错误。
第一个,要将项目附加到列表,您应该使用 :+
。 +
不是您要寻找的内容。 tempList + "asd"
隐式将列表转换为字符串并将文本附加到该字符串。这可能会令人困惑。
第二个 List
是不可变的,因此每个 :+
调用都会返回一个新的 List。
所以你的代码应该是这样的:
x => tempList = tempList :+ ("[[\"1\",\""+x+"\"]]")
关于scala - 将项目添加到新的字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22663672/