【发布时间】:2013-01-22 23:30:33
【问题描述】:
以下代码:
val sentence = "1 2 3 4".split(" ")
给我:
Array(1, 2, "", 3, "", "", 4)
但我宁愿只写单词:
Array(1, 2, 3, 4)
单词被多个空格隔开,如何分句?
【问题讨论】:
标签: scala
以下代码:
val sentence = "1 2 3 4".split(" ")
给我:
Array(1, 2, "", 3, "", "", 4)
但我宁愿只写单词:
Array(1, 2, 3, 4)
单词被多个空格隔开,如何分句?
【问题讨论】:
标签: scala
【讨论】:
您可以从拆分的Array 中过滤掉""。
scala> val sentence = "1 2 3 4".split(" ").filterNot(_ == "")
sentence: Array[java.lang.String] = Array(1, 2, 3, 4)
【讨论】:
这个正则表达式\\W+ 传递(不使用字母的)单词,因此
val sentence = "1 2 3 4".split("\\W+")
sentence: Array[String] = Array(1, 2, 3, 4)
为了便于使用,在 Scala 2.10.* 和 2.11.* 中考虑
implicit class RichString(val s: String) extends AnyVal {
def words = s.split("\\W+")
}
因此,
sentence.words
res: Array[String] = Array(1, 2, 3, 4)
【讨论】: