下面的代碼:如何將句子拆分爲由多個空格分隔的單詞?
val sentence = "1 2 3 4".split(" ")
給我:
Array(1, 2, "", 3, "", "", 4)
但我寧願希望有隻有一行字:
Array(1, 2, 3, 4)
我怎麼可以拆分句子的時單詞是由多個空格分隔的?
下面的代碼:如何將句子拆分爲由多個空格分隔的單詞?
val sentence = "1 2 3 4".split(" ")
給我:
Array(1, 2, "", 3, "", "", 4)
但我寧願希望有隻有一行字:
Array(1, 2, 3, 4)
我怎麼可以拆分句子的時單詞是由多個空格分隔的?
使用正則表達式:
scala> "1 2 3".split(" +")
res1: Array[String] = Array(1, 2, 3)
的 「+」 是指 「一個或多個先前的」(以前是一個空間)。
更好的是,如果你想拆就所有空格:
scala> "1 2 3".split("\\s+")
res2: Array[String] = Array(1, 2, 3)
您可以從分割Array
中篩選出""
。
scala> val sentence = "1 2 3 4".split(" ").filterNot(_ == "")
sentence: Array[java.lang.String] = Array(1, 2, 3, 4)
這個也可以,但我發現了另一個微不足道的答案。謝謝 – yalkris
這個正則表達式\\W+
提供(alphaunmerical)的單詞,因此
val sentence = "1 2 3 4".split("\\W+")
sentence: Array[String] = Array(1, 2, 3, 4)
爲了便於使用,在Scala 2.1 0 *和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)
http://stackoverflow.com/questions/225337/how-do-i-split-a-string-with-any - 空白字符作爲分隔符 這工作。 – yalkris