2017-08-15 70 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));