如何拆分句子翻译成多个空格隔开的话吗?(How to split sentence into wor

2019-08-07 21:59发布

下面的代码:

val sentence = "1 2  3   4".split(" ")

给我:

Array(1, 2, "", 3, "", "", 4)

但我宁愿希望有只有一行字:

Array(1, 2, 3, 4)

我怎么可以拆分句子时的文字,被多个空格隔开?

Answer 1:

使用正则表达式:

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)

(其中"\\s"是一个模式相匹配任何空白。看看这里有更多的例子。)



Answer 2:

您可以过滤掉""从分割Array

scala> val sentence = "1 2  3   4".split(" ").filterNot(_ == "")
sentence: Array[java.lang.String] = Array(1, 2, 3, 4)


Answer 3:

该正则表达式\\W+递送(alphaunmerical)词语,从而

val sentence = "1 2  3   4".split("\\W+")
sentence: Array[String] = Array(1, 2, 3, 4)

为了方便使用,在斯卡拉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)


文章来源: How to split sentence into words separated by multiple spaces?
标签: scala