あなたが試すことができる手順...
-- > 各エントリで "\n" が使用可能であることが確実な場合は、y と入力し、 org.apache.commons.lang.StringUtils.substringBefore(String, String) を使用して各エントリから日付部分のみを取得します。x と入力します。
--> 次のステップは、 java.text.SimpleDateFormat (yyyy-mm-dd)を使用して x を Date に解析することです。
--> 次に、キーと値のペアを含むことができる任意のコレクション オブジェクトを使用できます。ここで、キーは x で値は y です (値を自動的にソートできるTreeMapを使用します)。
このアプローチの問題: 部分 x が配列の複数のエントリで共通している場合、このアプローチは機能しません。
このコードを実行してみてください。最後の print ステートメントは、ソートされた結果を提供します。マップ内の値は、探しているものです。
class TestClass {
public void checkThis() throws ParseException {
String[] sampleValues = new String[3];
sampleValues[0]= "2013-7-13 \n 12 hour(s) 23 minute(s) ";
sampleValues[1]= "2013-8-14 \n 12 hour(s) 23 minute(s) ";
sampleValues[2]= "2013-5-16 \n 12 hour(s) 23 minute(s) ";
System.out.println("--> before"+ sampleValues);
String x= null;
Date date =null;
Map<Date, String> map = new TreeMap<Date, String>();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
for (String y : sampleValues) {
x = StringUtils.substringBefore(y, " \n");
date= formatter.parse(x);
map.put(date, y);
}
System.out.println(map.keySet());
}
}