【发布时间】:2013-07-23 00:28:22
【问题描述】:
我有以下字符串:
"year string
temperature int
quality int"
我需要从每一行中提取第一个单词并用逗号分隔它(所以它应该是“年份、温度、质量”)。我如何在scala中做到这一点?我尝试使用正则表达式和拆分来创建一个字符串数组,但是当我尝试迭代数组时,eclipse 向我咆哮。
【问题讨论】:
标签: scala
我有以下字符串:
"year string
temperature int
quality int"
我需要从每一行中提取第一个单词并用逗号分隔它(所以它应该是“年份、温度、质量”)。我如何在scala中做到这一点?我尝试使用正则表达式和拆分来创建一个字符串数组,但是当我尝试迭代数组时,eclipse 向我咆哮。
【问题讨论】:
标签: scala
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(", ")
【讨论】:
一种按第一个词分割的方法,即split("\\W+",2),
myString.split("\n")
.map(_.split("\\W+",2).head)
.mkString(",")
【讨论】: