gpt4 book ai didi

java - 为什么我在使用 useDelimiter 时在我的数组中得到一个空元素

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:42 25 4
gpt4 key购买 nike

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

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 个位置有一个空值。我可以在分隔符中添加什么来删除这个空值?

最佳答案

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

while (s.hasNext()) {
s.useDelimiter("(,.*)|[^0-9]+");
String next = s.next();
if (next.length() > 0)
array.add(next);
System.out.println(array);
}

关于java - 为什么我在使用 useDelimiter 时在我的数组中得到一个空元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20532741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com