我想要做的草图是
def printcsv(args: String*) {
val line = for (arg <- args) {???}
println(line)
}
我想
printcsv(“Hello”,“to”,“world”)
打印
“你好”, “到”, “世界”
我能做到这一点是很多必要的扭曲,但我正在努力寻找一个优雅的解决方案。存储在val中非常重要,而不是直接打印到控制台。
答案 0 :(得分:5)
这就是你要找的东西吗?
scala> val args = List("Hello","to","world")
args: List[java.lang.String] = List(Hello, to, world)
scala> val csv = args.mkString(",")
csv: String = Hello,to,world
scala> print(csv)
Hello,to,world
如果您需要结果中的引号,则可以在mkString
:
scala> args.map('"'+_+'"')
res14: List[java.lang.String] = List("Hello", "to", "world")
答案 1 :(得分:2)
如果你想在引号中使用mkString的三参数版本,只需一步即可完成。无需单独的map
:
scala> def printcsv(args:String*) = args.mkString("\"","\",\"","\"")
printcsv: (args: String*)String
scala> printcsv("hello", "to", "world")
res0: String = "hello","to","world"
答案 2 :(得分:1)
简单,只需使用mkString方法:
scala> def printcsv(args:String*) = args.mkString(",")
printcsv: (args: String*)String
scala> printcsv("hello", "to", "world")
res0: String = hello,to,world
如果您事先需要任何转换,可以使用map
方法作为om-nom-nom。