为什么将行分割成数组后,for循环后的代码不起作用?

时间:2019-05-19 14:40:35

标签: java arrays arraylist output

在此循环中,将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,但它们不起作用

1 个答案:

答案 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); } }); 可能会引发异常)。