【发布时间】:2013-12-30 05:29:47
【问题描述】:
我有一个如下所示的文本文件:
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 个位置有一个空值。我可以在分隔符中添加什么来删除这个空值?
【问题讨论】:
-
您的分隔符与环匹配。也许应该是
time=... -
我不希望分隔符与环相匹配以便将其删除吗?
-
我想忽略“rings=5”或任何其他数字,例如“rings=23”
-
你想忽略的总是“环”吗?
-
是的,对于我扫描的任何文本文件,我都想忽略“rings=(无论它是什么数字)”
标签: java