2013-05-06 44 views
0

我有一個字符串「0000_Clothing | 0000_Clothing_Men's | 0000_Clothing_Men's_Shirts」,我想將這個字符串分割爲「|」。在特殊字符上分割字符串

String CatArray[] = CatContext.split("|"); 

上面提到的代碼將字符串拆分爲單獨的字符,如0,0,0,0,_,C,包括|符號。

我在這裏錯過了什麼?

回答

5

|是一個正則表達式元字符,逃吧"\\|"

+1

還應該提到,第一個反斜槓是爲了逃避第二個反斜槓(由於Java),它會轉義| (由於正則表達式語法):D – Patashu 2013-05-06 06:46:32

2

拆分方法需要一個正則表達式,你將不得不逃離|

你可以做任何

CatContext.split("\\|"); 

CatContext.split("[|]"); 
1

注意public String[] split(String regex)需要正則表達式

所以你應該逃過special char|。轉義正則表達式由\完成,但是在Java中,\被寫爲\\

當你逃跑的特殊字符,你告訴的Java:

「不要把|作爲特殊字符|,把它當作是普通字符|」。

另一種解決方案是使用public static String quote(String s)說:「返回指定字符串文字模式String」:

String[] CatArray = CatContext.split(Pattern.quote("|"));

1

如果你不想進行轉義管道(自管一個特殊的正則表達式字符),那麼你可以使用Pattern#quote

String[] catArray = CatContext.split(Pattern.quote("|")); 

或者也可以簡單:

String[] catArray = CatContext.split("\\Q|\\E"));