如何分隔由" $"?分隔的java字符串?

时间:2014-09-13 13:52:25

标签: java groovy spock

我正在使用spock来测试一个java应用程序。似乎“$”是groovy中的一个特殊字符。由“$”分隔的任何java字符串都无法在groovy中正确分离。这个问题的解决方法是什么?

更新

“拆分”发生在我无法编辑的java代码中。事实证明,java代码存在与Why can't I split a string with the dollar sign?

相同的问题

1 个答案:

答案 0 :(得分:1)

我不认为$是Groovy字符串中的特殊字符。 编辑:是的,如果你使用GStrings就是这样!但其余的可能仍然有用:但它是你给String#split的字符串中的一个特殊字符,因为该字符串被解释为正则表达式,并且在正则表达式中$是“输入结束”(或行尾,取决于标志)。

如果您正在使用String#split,要将其拆分为文字$,则必须使用反斜杠对其进行转义。要使正则表达式引擎看到反斜杠,您必须使用另一个反斜杠转义字符串文字中的反斜杠。

Example

'testing$one$two$three'.split('\\$').each {
  println it
}

输出:

testing
one
two
three

更好的是,suggestedDónal,使用tokenize

Example

'testing$one$two$three'.tokenize('$').each {
    println it
}

(相同输出)