1

我想遍历一个字符串列表,将它们与后缀/前缀“”连接起来,如果它不是列表的最后一个条目,则在末尾附加一个逗号。

想要的输出示例:“circle”、“cube”、“banana”

我的第一次尝试是以下代码段:

@listStringifier(list: List[String]) = @{
  if (list != null && !list.isEmpty) {
   for ((string, index) <- list.zipWithIndex){if(index != list.size-1){"string",}
   else{"string"}
   }
  }
}

但是当我在任何地方使用@listStringifier 时,这个函数总是空的。

在 @listStringifier 块中记录表明它正在迭代,但没有分配任何东西。

如果我像下面的代码片段那样直接在模板中调用 for 循环,它将起作用:

@if (list != null && !list.isEmpty) {
  for ((string, index) <- list.zipWithIndex){if(index != list.size-1){"@string",}
  else{"@string"}
  }
}

但我不想迭代多次,所以我想在之后将连接的字符串分配给一个变量。

任何帮助将不胜感激,在此先感谢

4

2 回答 2

3

我想mkString可以做你想做的

list.mkString( "'" , "','" , "'" )
于 2016-09-14T08:00:21.677 回答
1

mkString 可以优雅地做到这一点

@listStringifier(list: List[String]) = @{ list mkString("", ",", "") }

如果你想在字符串周围加上引号,你可以这样做

list.map(str => s""""$str"""").mkString(",")
于 2016-09-14T08:04:39.383 回答