的什麼,我試圖做的草圖低於如何從Scala中的重複參數打印CSV行?
def printcsv(args: String*) {
val line = for (arg <- args) {???}
println(line)
}
我想
printcsv( 「你好」, 「來」, 「世界」)
要打印
「你好」,「至」,「世界」
我可以做到這一點是很多強制性的扭曲,但我正在努力與優雅的解決方案。存儲在val中非常重要,而不是直接打印到控制檯。
的什麼,我試圖做的草圖低於如何從Scala中的重複參數打印CSV行?
def printcsv(args: String*) {
val line = for (arg <- args) {???}
println(line)
}
我想
printcsv( 「你好」, 「來」, 「世界」)
要打印
「你好」,「至」,「世界」
我可以做到這一點是很多強制性的扭曲,但我正在努力與優雅的解決方案。存儲在val中非常重要,而不是直接打印到控制檯。
這是你在找什麼?
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")
簡單,只需使用mkString方法:
scala> def printcsv(args:String*) = args.mkString(",")
printcsv: (args: String*)String
scala> printcsv("hello", "to", "world")
res0: String = hello,to,world
如果您需要任何可以使用前面提到的om-nom-nom提供的map
方法。
如果您希望使用引號,請使用mkString的三參數版本一步完成。不需要單獨的map
:
scala> def printcsv(args:String*) = args.mkString("\"","\",\"","\"")
printcsv: (args: String*)String
scala> printcsv("hello", "to", "world")
res0: String = "hello","to","world"