java - 为什么将行拆分为数组后,for循环后的代码不起作用?
问题描述
在这个循环中,arraylist中的字符串被分割,每个单词被插入到一个数组中。我只需要第二个位置的日期来将它与我通过的日期进行比较。如果不存在,则从 arraylist 中删除整个字符串。
出于这个原因,我使用了迭代器。一切正常,但 for 循环后的代码不起作用。消除在数组中插入单词可以解决所有问题。我在其他地方使用了相同的方法,它没有问题,我不明白。
CreateMap(ArrayList<String> eventi,String data) throws ParseException {
list_eventi = eventi;
intervallo = data;
String [] periodo;
String[] arrayData;
periodo = intervallo.split("-");
String data_in = periodo[0];
String data_fin = periodo[1];
SimpleDateFormat format = new SimpleDateFormat("ddMMyyyy");
Date dateIn = format.parse(data_in);
Date dateFin = format.parse(data_fin);
String[] line;
for (Iterator<String> iter = eventi.listIterator(); iter.hasNext(); ) {
String a = iter.next();
line = a.split(" "); //this is the problem//
String d = line[2];
Date dateImport = format.parse(d);
if(!dateImport.before(dateIn) && !dateImport.after(dateFin)) {
//date che sono nell'intervallo
// date between
System.out.println(d);
} else{
System.out.println("dati da eliminare " + a);
//iter.remove();
}
}
------------------------------ after this line the code doesn't execute
System.out.println("dati rimanenti");
System.out.println(list_eventi.toString());
//Map_for_login(eventi);
//Map_for_all(eventi);
执行代码后没有错误消息,但是在for循环之后还有其他方法和各种system.out但它们不起作用
解决方案
由于您的变量eventi
是一个,ArrayList
您可以使用该.forEach()
方法。
使固定:
List<String> resEventi = new ArrayList(); // the resulting eventi arrayList with only the correct values
eventi.forEach( a -> {
line = a.split(" ");
String d = line[2];
Date dateImport = format.parse(d);
if(!dateImport.before(dateIn) && !dateImport.after(dateFin)) {
//date che sono nell'intervallo
// date between
resEventi.add(a);
System.out.println(d);
} else{
System.out.println("dati da eliminare " + a);
}
});
如果您传入正确的数据,这应该可以工作(可能会引发异常format.parse(d)
)。
推荐阅读
- nopcommerce - 日志级别配置
- css - IE 11 打印时不支持图像宽度
- c++ - C++:从 const 向量转换
为常量向量 安全的? - c# - C# ClosedXML 将特定行中单元格的值分配给字符串
- python - Python原始套接字不打印接收到的数据(但它正在发送)
- c++ - 尝试打开 SQLite3 数据库时出错
- docker - Jenkins 控制台打印编码字符
- c# - 当 TextBox 具有 .Text 时,WPF ContextMenuOpening 事件不会触发
- javascript - 尝试循环 axios 请求并异步推送
- javascript - 使用 javascript 绑定方法保留函数属性