2017-08-15 73 views
0

首先,我知道可能存在重複但我不理解它們,因此請不要將其標記爲重複項!如何在陣列中分割字符串

我希望在陣列分割字符串(見下文)爲字符:

原件:

String original = "0, 0, 0, 0 | 1, 1, 1, 1 | 2, 2, 2, 2" 

陣列:

String[] array2 = {"0, 0, 0, 0", "1, 1, 1, 1", "2, 2, 2, 2"} 

結果,我想:

String[] arrayprime = {"0", "0", "0", "0", "1", "1", "1", "1", "2", "2", "2", "2"} 

你會怎麼做?我想到

String[] array2 = original.split("\\|"); 
String[] arrayprime = array2.split(", "); 

但它似乎並沒有工作(說:「無法找到符號」)。

我應該把數組(array2)變成一個字符串(如果是這樣,如何)?然後再分裂?

+1

'array2.split( 「」);'? – Teo

+0

你的第二次拆分不能設置爲使用逗號嗎?您似乎在空間上擁有它 – Eli

+0

您可以在一次調用中分割多個分隔符。 –

回答

3

它看起來像你想拆分", "" | "

由於split支持正則表達式,你可以把它寫成

String[] array = yourText.split(", | \\| "); 
//         ^-OR operator which creates 
//         alternation between ", " and " | " 
1

你的錯誤是在這一行

String[] arrayprime = array2.split(" "); 

不能在陣列中使用拆分法。 Split方法在String上。所以基本上你必須遍歷array2並在每個String上應用拆分。

或者簡單地使用正則表達式

String[] array2 = original.split("\\||,"); 

請注意,您使用此爲您的初始字符串後,在你的字符串空間有空格。請考慮修剪它們以獲得所需的輸出。

2

可以使用character classes這需要在這種情況下沒有逃脫

String original = "0, 0, 0, 0 | 1, 1, 1, 1 | 2, 2, 2, 2"; 
    String arr[]=original.split("[|,]"); 
    System.out.println(Arrays.toString(arr));