在scala中取字符串并提取第一个单词和逗号分开?

时间:2013-07-23 00:28:22

标签: scala

我有以下字符串:

"year   string  
temperature int
quality int" 

我需要从每一行中提取第一个单词并用逗号分隔它(因此它应该是“年份,温度,质量”)。我如何在scala中执行此操作?我尝试使用正则表达式并拆分以创建一个字符串数组,但是当我尝试遍历数组时,eclipse正在咆哮。

2 个答案:

答案 0 :(得分:7)

val s = """year   string
temperature int
quality int"""

s.split("\n").map(_.split("\\s+")(0)).mkString(", ")
// res0: String = year, temperature, quality

这会在换行符上拆分字符串s以获取行数组。然后,对于每一行,它在空白上拆分行,并获取结果数组的第一个元素,即第一个单词。最后,它通过在中间用逗号连接它们,从第一个单词数组中创建一个字符串。

只是说明这里涉及的步骤,这相当于上面的最后一行:

val lines = s.split("\n")
val firstWords = lines.map(_.split("\\s+")(0))
firstWords.mkString(", ")

答案 1 :(得分:0)

按第一个单词分割的方法,即split("\\W+",2)

myString.split("\n")
        .map(_.split("\\W+",2).head)
        .mkString(",")