Kno*_*uch 4 string split scala
我写了这段代码
val line = "Aaa Bbb Ccc"
line.split(" ")
Run Code Online (Sandbox Code Playgroud)
它按预期产生以下输出:
res31: Array[String] = Array(Aaa, Bbb, Ccc)
Run Code Online (Sandbox Code Playgroud)
我稍微更改了代码:
val line = "Aaa|Bbb|Ccc"
line.split("|")
Run Code Online (Sandbox Code Playgroud)
现在我不明白输出:
res30: Array[String] = Array("", A, a, a, |, B, b, b, |, C, c, c)
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
Lee*_*Lee 11
split采用表示正则表达式的字符串来分割 - "|" 是空字符串或另一个空字符串的正则表达式,因此它在每个字符之间分割.你需要逃避|:
line.split("\\|")
Run Code Online (Sandbox Code Playgroud)
或者你可以使用带Char参数的重载(在中定义StringOps):
line.split('|')
Run Code Online (Sandbox Code Playgroud)
管道"|" 是一个正则表达式字符,意味着两个选项之一.在这种情况下,空或空.
尝试转义它以将其用作角色:
val line = "Aaa|Bbb|Ccc"
line.split("\\|")
res0: Array[String] = Array(Aaa, Bbb, Ccc)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
152 次 |
| 最近记录: |