2010-09-28 51 views

回答

11

“split”方法的参数必须是正则表达式,而'?'字符在正则表达式中有特殊含义,所以你必须逃避它。这是通过在正则表达式中添加反斜杠之前完成的。但是,由于是由一个Java字符串的方式提供的正则表达式,它需要两个反斜杠代替,以获得实际的反斜杠字符为正则表达式:

str.split("\\?")[0]; 
+1

+1用于解释*为什么*您需要转义'?',而不是仅仅提供代码。 – FrustratedWithFormsDesigner 2010-09-28 14:48:19

2
str.split("\\?")[0] 
+1

(说明:该参数'String.split'是实际上是一个正则表达式而不是纯文本,不是Java的最佳设计之一,这是) – bobince 2010-09-28 14:47:00

+1

...因为'?'是正则表达式中的一个特殊字符,它必须用\和\转义,必须转义\在Java中。 – splash 2010-09-28 14:47:01

+0

@Downvoter:小心解释为什么? – LukeH 2010-09-28 14:50:10