我有一个看起来像这样的文本文件:
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);
}
}
我想只返回时间值,例如“0”,“2000”等。在文本文件的第五行,我想完全忽略“rings = 5”。此外,“rings =”的值不会总是5,它会改变,但我仍然想忽略它。使用上面的正则表达式,我得到了这个输出:
[0,2000,10000,12000,9000,6000,4000,20000,7000,8000]
请注意,在数组的第6个位置有一个空值。我可以添加到分隔符中以删除此空值?
答案 0 :(得分:1)
在这种情况下,只要不将空字符串添加到数组就足够了,因为你已经忽略了“ring = X”部分
while (s.hasNext()) {
s.useDelimiter("(,.*)|[^0-9]+");
String next = s.next();
if (next.length() > 0)
array.add(next);
System.out.println(array);
}