Java 为什么在使用useDelimiter时数组中会出现空元素

Java 为什么在使用useDelimiter时数组中会出现空元素,java,Java,我有一个如下所示的文本文件: Event=ThermostatNight,time=0 Event=LightOn,time=2000 Event=WaterOff,time=10000 Event=ThermostatDay,time=12000 Event=Bell,time=9000,rings=5 Event=WaterOn,time=6000 Event=LightOff,time=4000 Event=Terminate,time=20000 Event=FansOn,time=70

我有一个如下所示的文本文件:

Event=ThermostatNight,time=0
Event=LightOn,time=2000
Event=WaterOff,time=10000
Event=ThermostatDay,time=12000
Event=Bell,time=9000,rings=5
Event=WaterOn,time=6000
Event=LightOff,time=4000
Event=Terminate,time=20000
Event=FansOn,time=7000
Event=FansOff,time=8000
public void extractDataIntoArray() {
    array = new ArrayList<String>();    
    while (s.hasNext()) {
        s.useDelimiter("(,.*)|[^0-9]+");
        array.add(s.next());
        System.out.println(array);
    }
}
我有这样一种方法:

Event=ThermostatNight,time=0
Event=LightOn,time=2000
Event=WaterOff,time=10000
Event=ThermostatDay,time=12000
Event=Bell,time=9000,rings=5
Event=WaterOn,time=6000
Event=LightOff,time=4000
Event=Terminate,time=20000
Event=FansOn,time=7000
Event=FansOff,time=8000
public void extractDataIntoArray() {
    array = new ArrayList<String>();    
    while (s.hasNext()) {
        s.useDelimiter("(,.*)|[^0-9]+");
        array.add(s.next());
        System.out.println(array);
    }
}
public void extractDataIntoArray(){
数组=新的ArrayList();
而(s.hasNext()){
s、 使用分隔符((,.*)[^0-9]+”;
add(s.next());
System.out.println(数组);
}
}
我只想返回时间值,如“0”、“2000”等。在文本文件的第五行,我想完全忽略“rings=5”。另外,“rings=”的值并不总是5,它会改变,但我仍然想忽略它。使用上面的正则表达式,我能够获得以下输出:

[0,2000,10000,12000,9000,6000,4000,20000,7000,8000]


请注意,在数组的第6个位置有一个空值。我可以向分隔符中添加什么来删除此空值

在这种情况下,不向数组中添加空字符串就足够了,因为您已经忽略了“ring=X”部分


您的分隔符与环匹配。也许它应该像
time=…
我不希望分隔符与环匹配,这样它就被删除了吗?我想忽略“rings=5”或任何其他数字,例如“rings=23”,你想忽略的总是“rings”吗?是的,对于我扫描的任何文本文件,我想忽略“rings=(无论是什么数字)”