1

現在ArrayList、フォーマットに日付が入力されており2012-06-19、それらすべてを s の配列に追加しようとしていますDate

これは私が失敗しているコードの部分です。

    listIterator = dateValues.listIterator();

    Date [] dates = new Date[dateValues.size()];
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    int i = 0;
    try{
        while(listIterator.hasNext())
        {
            //System.out.println(listIterator.next().toString());
            dates[i] =  dateFormat.parse(listIterator.next().toString());
            i++;

        }

        for(i = 0; i < dates.length;i++)
        {
            System.out.println(dates[i]);
        }
    }
    catch(Exception e){e.printStackTrace()};
}

この線

//System.out.println(listIterator.next().toString());

ArrayList のすべての日付を出力します。出力は次のようになります。

2007-09-07
2007-09-07
2007-10-05
2007-10-05
2007-10-05
2007-10-05
2007-10-05

しかし、私のdateFormat行は に値を追加しませんdates[]。どんな助けでも大歓迎です。

いいえ、それは宿題ではありません。

4

3 に答える 3

1

行の場合:

//System.out.println(listIterator.next().toString()); 

is uncommentednext()は 1 回の反復で 2 回呼び出され、最終的にNoSuchElementExceptionはスローされます。後続のforループが実行されないことを意味します。の結果を保存next():

while(listIterator.hasNext())
{
    String s = listIterator.next().toString();
    System.out.println(s);
    dates[i] = dateFormat.parse(s);
    i++;
}
于 2012-05-23T10:16:40.277 に答える
0

@Tom Celicによるソリューションは、私にとってはうまくいきます。

List<String> dateValues = new ArrayList<String>();
    dateValues.add("2012-09-08");
    dateValues.add("2011-09-08");
    Date[] dates = new Date[dateValues.size()];
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    int i = 0;
    for (String dateValue : dateValues) {
        dates[i++] = dateFormat.parse(dateValue);
    }
    System.out.println(dates.length);
    System.out.println(dates[0]);
    System.out.println(dates[1]);

それは印刷します:

    2
Sat Sep 08 00:00:00 IST 2012
Thu Sep 08 00:00:00 IST 2011
于 2012-05-23T11:31:50.643 に答える