用“|〜|”拆分字符串在斯卡拉

时间:2015-04-20 20:24:23

标签: scala

在python中,我可以这样做:

In [4]: "string1|~|string2".split("|~|")
Out[4]: ['string1', 'string2']

但是,scala中的相同代码并没有给出预期的输出:

scala> "string1|~|string2".split("|~|")
res3: Array[java.lang.String] = Array("", s, t, r, i, n, g, 1, |, ~, |, s, t, r, i, n, g, 2)

我调查了这个问题How to split a string by a string in Scala,似乎我的代码应该可行,但事实并非如此。我错过了什么?如何获得所需的输出?

1 个答案:

答案 0 :(得分:7)

这是因为Scala中的split与Java中的split相同,后者需要正则表达式。因此|需要进行转义,因为它们代表正则表达式中的or运算符。

scala> "string1|~|string2".split("\\|~\\|")
res48: Array[String] = Array(string1, string2)