如何从Scala中的重复参数打印CSV行?

时间:2011-07-30 23:21:30

标签: scala

我想要做的草图是

  def printcsv(args: String*) {
    val line = for (arg <- args) {???}
    println(line)
  }

我想

printcsv(“Hello”,“to”,“world”)

打印

“你好”, “到”, “世界”

我能做到这一点是很多必要的扭曲,但我正在努力寻找一个优雅的解决方案。存储在val中非常重要,而不是直接打印到控制台。

3 个答案:

答案 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。