您可以尝试执行的步骤...
--> 如果您确定“\n”在每个条目中可用,请说 y ,然后使用org.apache.commons.lang.StringUtils.substringBefore(String, String) 仅从每个条目中获取日期部分说 x
--> 下一步是使用java.text.SimpleDateFormat (yyyy-mm-dd)将 x 解析为 Date
--> 然后您可以使用任何可以包含键值对的集合对象,其中键是 x 和值 y(使用TreeMap这可以自动对值进行排序。)
这种方法的问题:如果部分 x 在您的数组的多个条目中很常见,则此方法将不起作用。
尝试运行此代码。最后一个打印语句将为您提供排序结果。map 里面的值就是你要找的。
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());
}
}