2012-10-15 14 views
0

我正在尋找更簡單的解決方案。我是Java新手,需要一點幫助。我試圖通過這個'],['分割字符串到字符串[]。問題是Java試圖讓它們像一個正則表達式,我不想使用它,因爲我不夠好。我只想通過這3個字符來分割字符串「],[」; 這裏是我的代碼:如何在分割字符串數組時跳過正則表達式

String usefulData = ...; 
String[] list = null; 
String token = "],["; 
list = usefulData.split(token); 

這裏是錯誤輸出中:異常在線程 「AWT-EventQueue的 - 0」 java.util.regex.PatternSyntaxException:近索引2 ],[未關閉的字符類..請問,有什麼建議如何讓這個想法起作用?

PS。有沒有其他的方式來分割字符串?我不太喜歡這個正則表達式。我已經使用過Qt和C#,並且在這兩個地方都有辦法擺脫這種正則表達式。非常感謝人們!

+0

我假設你解析像[A],[B]?在這種情況下,拆分結果看起來像[「[a」,「b」「]。這是你想要的嗎? – sjr

+0

@DonAngelo。請記住接受其中一個答案,通過點擊除了每個答案之外的箭頭.. –

回答

4

您可以使用Pattern#quote方法構建您的字符串。

這樣你就不需要用你的特殊字符escape加一個反斜槓。 Pattern.quote讓所有special characters字符串表現得像字符串文字: -

String usefulData = "[a],[b],[c,d]"; 
String token = Pattern.quote("],["); 
String[] list = usefulData.split(token); 

for (String val: list) { 
    System.out.println(val.replaceAll("\\[|\\]", "")); 
} 

輸出: -

a 
b 
c,d 
+0

感謝分享這個,我總是逃脫自己。 – LanguagesNamedAfterCofee

+1

@LanguagesNamedAfterCofee Lol。 :)現在你不必。只需在需要時提供自己的報價;) –

+0

@DonAngeloAnnoni ..你好。您可以嘗試更新我的代碼。我添加了代碼來從開始和結束中刪除'['和']'。 –

4

你想要「\] \,\ [」。

String usefulData = ...; 
String[] list = usefulData.split("\\],\\["); 

這是因爲[]是一個正則表達式的特殊字符。你必須用\\將它們作爲常規字符使用。

+0

它可能會幫助,現在我要去試試,謝謝 –

2
String usefulData = ...; 
String[] list = null; 
String token = "],["; 
list = usefulData.split(java.util.regex.Pattern.quote(token)); 
相關問題