如何拆分所有值,甚至 Java 中的空值

how to split all values even the empty ones in Java

我将此列表命名为 "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]

如果你使用 .split() 和第二个负参数,你也会得到结果数组中的所有 "empty" 元素:

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

这是你期望的吗?

干杯,

这可以解决它:

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);