2011-07-30 17 views
0

私がやろうとしています何のスケッチは、私がScalaの繰り返しパラメータからCSVラインを印刷するにはどうすればよいですか?

を印刷するには

printcsv( "こんにちは"、 "に"、 "世界")

をしたいと思います

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

を下回っています

「こんにちは」、「to」、「world」

私はこれを行うことができましたが、多くの命令的な歪曲がありましたが、私は優雅な解決策に苦しんでいます。 valに格納し、単にコンソールに直接印刷するのではなく、格納することが重要です。

答えて

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

シンプル、ちょうど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メソッドを使用できます。

2

引用符で囲みたい場合は、3つの引数を持つバージョンのmkStringを使用して1つのステップで行います。別途必要ありませんmap

関連する問題