在此循环中,将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,但它们不起作用
答案 0 :(得分:0)
由于变量@objc func nextBtnClicked() {
print("clic")
}
是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);
}
});
可能会引发异常)。