如何将句子分成由多个空格分隔的单词?

yal*_*ris 25 scala

以下代码:

val sentence = "1 2  3   4".split(" ")
Run Code Online (Sandbox Code Playgroud)

给我:

Array(1, 2, "", 3, "", "", 4)
Run Code Online (Sandbox Code Playgroud)

但我宁愿只想说:

Array(1, 2, 3, 4)
Run Code Online (Sandbox Code Playgroud)

当单词被多个空格分隔时,如何拆分句子?

Tim*_*Tim 58

使用正则表达式:

scala> "1   2 3".split(" +")
res1: Array[String] = Array(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

"+"表示"前一个或多个"(先前是空格).

更好的是,如果你想分割所有空格:

scala> "1   2 3".split("\\s+")
res2: Array[String] = Array(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

(在哪里匹配任何空格"\\s"模式.在这里查看更多示例.)

  • NB.对于以空格开头的字符串:"1 2 3".split("\\ s +"),这将给出一个结果,其中第一个元素是空字符串.是否有正则表达式可以避免这种情况? (2认同)

Bri*_*ian 5

您可以""从拆分中过滤掉Array.

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