以下代码:
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"的模式.在这里查看更多示例.)
您可以""从拆分中过滤掉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)