Scala/Java 模板列表迭代和字符串连接
Scala/Java template list iteration and concatenation of string
我想遍历一个字符串列表,将它们与 suffix/prefix "" 连接起来,如果它不是列表的最后一个条目,则在末尾附加一个逗号。
想要的输出示例:"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"}
}
}
但是我不想重复多次,所以我想在之后将连接的字符串分配给一个变量。
如有任何帮助,我们将不胜感激,
提前致谢
我觉得mkString
可以为所欲为
list.mkString( "'" , "','" , "'" )
mkString 可以优雅地做到这一点
@listStringifier(list: List[String]) = @{ list mkString("", ",", "") }
如果你想在字符串周围加上引号,你可以这样做
list.map(str => s""""$str"""").mkString(",")
我想遍历一个字符串列表,将它们与 suffix/prefix "" 连接起来,如果它不是列表的最后一个条目,则在末尾附加一个逗号。
想要的输出示例:"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"}
}
}
但是我不想重复多次,所以我想在之后将连接的字符串分配给一个变量。
如有任何帮助,我们将不胜感激, 提前致谢
我觉得mkString
可以为所欲为
list.mkString( "'" , "','" , "'" )
mkString 可以优雅地做到这一点
@listStringifier(list: List[String]) = @{ list mkString("", ",", "") }
如果你想在字符串周围加上引号,你可以这样做
list.map(str => s""""$str"""").mkString(",")