2010-09-28 78 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