如何在Java中拆分所有值甚至是空值

时间:2015-05-13 09:34:22

标签: java string-split

我将此列表命名为“lines”:

[|||dezd||, |a|||||||||||||||||||||||||||||, |||||dezdezd||||, |||||||||||||dezdzedze|||dezdzede|||dzedzedzed|]

我实现了这个:

for (String line1 : lines) {
    String[] array = null;
    array = line1.split("\\|");

    for(int i = 0 ;i<array.length;i++){
        listOfData.add(array[i]);
    }
}
System.out.println(listOfData);

结果是这样的,问题是“|”之间的一些空值没有添加到我的列表中:

[, , , dezd, , a, , , , , , dezdezd, , , , , , , , , , , , , , dezdzedze, , , dezdzede, , , dzedzedzed]

2 个答案:

答案 0 :(得分:2)

这可以解决它:

for (String line1 : lines) {
String[] array = null;
array = line1.split("\\|",-1);

for(int i = 1 ;i<array.length-1;i++){
listOfData.add(array[i]);
}}

System.out.println(listOfData); 

答案 1 :(得分:1)

如果您使用带有第二个参数的负.split(),您将获得结果数组中的所有“空”元素:

line1 = "|a||b||";
array = line1.split( "\\|"  , -1 );
assertThat( array.length , equalTo( 6 ) ); // { "", "a", "", "b", "", "" }

这是你期望的吗?

干杯,