怎么从文本中匹配日期格式并按此排序(Java)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么从文本中匹配日期格式并按此排序(Java)相关的知识,希望对你有一定的参考价值。
import java.text.ParseException;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestExp
public static void main(String[] args)
List<Map<String,Object>> rs = new ArrayList<Map<String,Object>>();
//假定日期字符串的格式为yyyy-MM-dd
String[] s = "adfkjaskdfakf2012-11-23asdfasdfads",
"asdfasddfafll2011-12-03asdfasfdaa",
"asdfasddfafll2013-02-05asdfasfdaa",
"asdfasddfafll2013-01-03asdfasfdaa";
//用正则表达式匹配日期字符串
Pattern pattern = Pattern.compile("(\\d4)(-)(\\d2)(-)(\\d2)");
for (int i = 0; i < s.length; i++)
Map<String,Object> map = new HashMap<String, Object>();
Date date = null;
Matcher m = pattern.matcher(s[i]);
if(m.find())
try
date = new SimpleDateFormat("yyyy-MM-dd").parse(m.group());
catch (ParseException e)
e.printStackTrace();
map.put("date", date);
map.put("value", s[i]);
rs.add(map);
//用冒泡法排序
for (int i = 0; i < rs.size(); i++)
for (int j = i; j < rs.size(); j++)
if(((Date)rs.get(i).get("date")).after((Date)rs.get(j).get("date")))
Map<String,Object> tmp = rs.set(i, rs.get(j));
rs.set(j, tmp);
for (int i = 0; i < rs.size(); i++)
System.out.println(rs.get(i).get("value"));
参考技术A 没看明白要问的什么!追问
就是说我文本里有几条信息,每条信息中含有“xxxx-xx-xx”这样的日期格式,我想用Java的模式匹配将其识别出来,再按日期的从早到晚对信息进行排序。
追答正则表达式吧 自己百度搜一下java模式匹配,然后看看正则表达式规则,你可以的!
追问嗯,是用正则表达式做。主要在日期格式前面还有一串数字代表别的信息,否则我就可以直接将其匹配成数字进行排序了,我再试试吧,谢谢哈
sql 从2个不同的表中选择唯一的电子邮件,并按日期排序。
以上是关于怎么从文本中匹配日期格式并按此排序(Java)的主要内容,如果未能解决你的问题,请参考以下文章
显示具有自定义日期元值的wordpress帖子,按此日期排序,