- import java.io.File;
- import java.io.IOException;
- import java.net.URLEncoder;
- import java.text.DateFormat;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.GregorianCalendar;
- import java.util.Locale;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
-
- import javax.servlet.http.HttpServletRequest;
-
- import org.apache.commons.lang.StringUtils;
- import org.jsoup.Jsoup;
- import org.jsoup.nodes.Document;
- import org.jsoup.nodes.Element;
- import org.jsoup.select.Elements;
-
- import com.trs.gab.beans.AppPhrasseDataResult;
- import com.trs.gab.beans.DicDataModel;
-
- import sun.misc.UCEncoder;
- /**
- * 时间工具类
- *
- */
- public class DateUtil {
-
- /**
- * 返回数据库中以'YYYY-MM-DD HH24:MI:SS'格式表示当前时间的字符串
- * 用法:to_date(?,'YYYY-MM-DD HH24:MI:SS')
- * ?设置strNowtime
- * @return
- */
- public static String getNowTimeStr(){
- Calendar m_cal = Calendar.getInstance();
- String strNowtime = m_cal.get(Calendar.YEAR) + "-"
- + (m_cal.get(Calendar.MONTH) + 1) + "-"
- + m_cal.get(Calendar.DAY_OF_MONTH) + " "
- + m_cal.get(Calendar.HOUR_OF_DAY) + ":"
- + m_cal.get(Calendar.MINUTE) + ":" + m_cal.get(Calendar.SECOND);
- return strNowtime;
- }
-
- /**
- * 获得当前时间,格式yyyy-MM-dd hh:mm:ss
- *
- * @param format
- * @return
- */
- public static String getCurrentDateTime() {
- return getCurrentDate("yyyy-MM-dd HH:mm:ss");
- }
-
- /**
- * 获得当前时间,格式自定义
- *
- * @param format
- * @return
- */
- public static String getCurrentDate(String format) {
- Calendar day = Calendar.getInstance();
- day.add(Calendar.DATE, 0);
- SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
- String date = sdf.format(day.getTime());
- return date;
- }
-
- /**
- * 获得昨天时间,格式自定义
- *
- * @param format
- * @return
- */
- public static String getYesterdayDate(String format) {
- Calendar day = Calendar.getInstance();
- day.add(Calendar.DATE, -1);
- SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
- String date = sdf.format(day.getTime());
- return date;
- }
-
- /**
- * @param date1
- * 需要比较的时间 不能为空(null),需要正确的日期格式 ,如:2009-09-12
- * @param date2
- * 被比较的时间 为空(null)则为当前时间
- * @param stype
- * 返回值类型 0为多少天,1为多少个月,2为多少年
- * @return 举例: compareDate("2009-09-12", null, 0);//比较天
- * compareDate("2009-09-12", null, 1);//比较月
- * compareDate("2009-09-12", null, 2);//比较年
- */
- public static int compareDate(String startDay, String endDay, int stype) {
- int n = 0;
- String[] u = { "天", "月", "年" };
- String formatStyle = stype == 1 ? "yyyy-MM" : "yyyy-MM-dd";
-
- endDay = endDay == null ? getCurrentDate("yyyy-MM-dd") : endDay;
-
- DateFormat df = new SimpleDateFormat(formatStyle);
- Calendar c1 = Calendar.getInstance();
- Calendar c2 = Calendar.getInstance();
- try {
- c1.setTime(df.parse(startDay));
- c2.setTime(df.parse(endDay));
- } catch (Exception e3) {
- System.out.println("wrong occured");
- }
- // List list = new ArrayList();
- while (!c1.after(c2)) { // 循环对比,直到相等,n 就是所要的结果
- // list.add(df.format(c1.getTime())); // 这里可以把间隔的日期存到数组中 打印出来
- n++;
- if (stype == 1) {
- c1.add(Calendar.MONTH, 1); // 比较月份,月份+1
- } else {
- c1.add(Calendar.DATE, 1); // 比较天数,日期+1
- }
- }
- n = n - 1;
- if (stype == 2) {
- n = (int) n / 365;
- }
- // System.out.println(startDay+" -- "+endDay+" 相差多少"+u[stype]+":"+n);
- return n;
- }
-
- /**
- * 判断时间是否符合时间格式
- */
- public static boolean isLegalDateString(String date, String dateFormat) {
- if (date != null) {
- java.text.SimpleDateFormat format = new java.text.SimpleDateFormat(
- dateFormat);
- format.setLenient(false);
- try {
- format.format(format.parse(date));
- } catch (ParseException e) {
- return false;
- }
- return true;
- }
- return false;
- }
-
- /**
- * 实现给定某日期,判断是星期几 date:必须yyyy-MM-dd格式
- */
- public static String getWeekday(String date) {
- SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
- SimpleDateFormat sdw = new SimpleDateFormat("E");
- Date d = null;
- try {
- d = sd.parse(date);
- } catch (ParseException e) {
- e.printStackTrace();
- }
- return sdw.format(d);
- }
-
- /**
- * 用来全局控制 上一周,本周,下一周的周数变化
- */
- private static int weeks = 0;
-
- /**
- * 获得当前日期与本周一相差的天数
- */
- private static int getMondayPlus() {
- Calendar cd = Calendar.getInstance();
- // 获得今天是一周的第几天,星期日是第一天,星期二是第二天......
- int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK);
- if (dayOfWeek == 1)
- return -6;
- else
- return 2 - dayOfWeek;
- }
-
- /**
- * 获得本周星期一的日期
- */
- public static String getCurrentMonday(String format) {
- weeks = 0;
- int mondayPlus = getMondayPlus();
- Calendar currentDate = Calendar.getInstance();
- currentDate.add(Calendar.DATE, mondayPlus);
- SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
- String date = sdf.format(currentDate.getTime());
- return date;
- }
-
- /**
- * 获得上周星期一的日期
- */
- public static String getPreviousMonday(String format) {
- weeks--;
- int mondayPlus = getMondayPlus();
- Calendar currentDate = Calendar.getInstance();
- currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);
- SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
- String date = sdf.format(currentDate.getTime());
- return date;
- }
-
- /**
- * 获得下周星期一的日期
- */
- public static String getNextMonday(String format) {
- weeks++;
- int mondayPlus = getMondayPlus();
- // GregorianCalendar currentDate = new GregorianCalendar();
- Calendar currentDate = Calendar.getInstance();
- currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);
- SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
- String date = sdf.format(currentDate.getTime());
- return date;
- }
-
- /**
- * 获得相应周的周日的日期 此方法必须写在getCurrentMonday,getPreviousMonday或getNextMonday方法之后
- */
- public static String getSunday(String format) {
- int mondayPlus = getMondayPlus();
- Calendar currentDate = Calendar.getInstance();
- currentDate.add(Calendar.DATE, mondayPlus + 7 * weeks + 6);
- SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
- String date = sdf.format(currentDate.getTime());
- return date;
- }
-
- /**
- * method 将字符串类型的日期转换为一个timestamp(时间戳记java.sql.Timestamp)
- *
- * @param dateString
- * 需要转换为timestamp的字符串
- * @return dataTime timestamp
- */
- public final static java.sql.Timestamp string2Time(String dateString) {
- DateFormat dateFormat;
- dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);// 设定格式
- dateFormat.setLenient(false);
- java.util.Date date = null;
- try {
- date = dateFormat.parse(dateString);
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- // java.sql.Timestamp dateTime = new java.sql.Timestamp(date.getTime());
- return new java.sql.Timestamp(date.getTime());// Timestamp类型,timeDate.getTime()返回一个long型
- }
-
- /**
- * method 将字符串类型的日期转换为一个Date(java.sql.Date)
- *
- * @param dateString
- * 需要转换为Date的字符串
- * @return dataTime Date
- */
- public final static java.sql.Date string2Date(String dateString) {
- DateFormat dateFormat;
- dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
- dateFormat.setLenient(false);
- java.util.Date date = null;
- try {
- date = dateFormat.parse(dateString);
- } catch (ParseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- // java.sql.Date dateTime = new java.sql.Date(date.getTime());// sql类型
- return new java.sql.Date(date.getTime());
- }
-
- // 记录考勤, 记录迟到、早退时间
- public static String getState() {
- String state = "正常";
- DateFormat df = new SimpleDateFormat("HH:mm:ss");
- Date d = new Date();
- try {
- Date d1 = df.parse("08:00:00");
- Date d2 = df.parse(df.format(d));
- Date d3 = df.parse("18:00:00");
-
- int t1 = (int) d1.getTime();
- int t2 = (int) d2.getTime();
- int t3 = (int) d3.getTime();
- if (t2 < t1) {
-
- long between = (t1 - t2) / 1000;// 除以1000是为了转换成秒
- long hour1 = between % (24 * 3600) / 3600;
- long minute1 = between % 3600 / 60;
-
- state = "迟到 :" + hour1 + "时" + minute1 + "分";
-
- } else if (t2 < t3) {
- long between = (t3 - t2) / 1000;// 除以1000是为了转换成秒
- long hour1 = between % (24 * 3600) / 3600;
- long minute1 = between % 3600 / 60;
- state = "早退 :" + hour1 + "时" + minute1 + "分";
- }
- return state;
- } catch (Exception e) {
- return state;
- }
-
- }
-
- /**
- * 数值型的时间改为字符串型时间
- *
- * @param time
- * @return
- */
- public static String getTime(long time) {
- try {
- Date date = new Date(time);
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//
- String strdate = sdf.format(date);
- return strdate;
- } catch (Exception e) {
- e.printStackTrace();
- return "0";
- }
- }
-
- /**
- * 传入"yyyy-MM-dd HH:mm:ss"格式字符串,传出从1970 年~~~ 至dateString表示时刻之间的ms。
- * @return
- */
- public static long getTimeMillis(String dateString){
- long timeMillis = 0;
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- try {
- Date date= sdf.parse(dateString);
- timeMillis = date.getTime();
- } catch (ParseException e) {
- }
- return timeMillis;
- }
-
- /**
- * 获得后N天的时间,格式自定义
- *
- * @param format
- * @return
- */
- public static String getDelayDayDate(String format,int delay) {
- Calendar day = Calendar.getInstance();
- day.add(Calendar.DATE, delay);
- SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
- String date = sdf.format(day.getTime());
- return date;
- }
-
- /**
- * 获得后N小时的时间,格式自定义
- * @param format
- * @param delay
- * @return
- */
- public static String getDelayHourDate(String format,int delay){
- Calendar day = Calendar.getInstance();
- day.add(Calendar.HOUR, delay);
- SimpleDateFormat sdf = new SimpleDateFormat(format);// "yyyy-MM-dd"
- String date = sdf.format(day.getTime());
- return date;
- }
-
- /**
- * @param date1
- * 需要比较的时间 不能为空(null),需要正确的日期格式 ,如:2009-09-12 16:24
- * @param date2
- * 被比较的时间 为空(null)则为当前时间
- * @param stype 0为比较小时,1为比较分钟。
- * @return
- */
- public static int compareTime(String startDay, String endDay,int stype) {
- int n = 0;
- String formatStyle = "yyyy-MM-dd HH:mm";
-
- endDay = endDay == null ? getCurrentDate("yyyy-MM-dd HH:mm") : endDay;
-
- DateFormat df = new SimpleDateFormat(formatStyle);
- Calendar c1 = Calendar.getInstance();
- Calendar c2 = Calendar.getInstance();
- try {
- c1.setTime(df.parse(startDay));
- c2.setTime(df.parse(endDay));
- } catch (Exception e3) {
- System.out.println("wrong occured");
- }
- // List list = new ArrayList();
- while (!c1.after(c2)) { // 循环对比,直到相等,n 就是所要的结果
- // list.add(df.format(c1.getTime())); // 这里可以把间隔的日期存到数组中 打印出来
- n++;
- if(stype == 0){
- c1.add(Calendar.HOUR, 1); // 比较月份,月份+1
- }else{
- c1.add(Calendar.MINUTE, 1); // 比较月份,月份+1
- }
- }
- n = n - 1;
- return n;
- }
- /**
- * 获取词典(牛津英汉词典)音标的信息
- */
- public static String getYin(String content)
- {
- String result="";
- String reg="<font color=(["'])#F17D1F(["']) size=4>(?:.*?)</font>";
- //String str="<td class="longtd" title="VRBZ3">VRBZ3</td>";
- String str="<font color=red>china</font><font color=green>china</font>";
- Pattern p=Pattern.compile(reg);
- Matcher m=p.matcher(content);
- int i=1;
- while(m.find()){
- System.out.println(m.group(0));
- result=result+"<br>"+"<font color=#F17D1F>"+i+"</font>"+m.group(0).replaceAll("size=4", "style="font-family:Arial Unicode Ms";");
- i++;
- }
- if(i==2)
- {
- String r="<font color=#F17D1F>";
- int x=result.indexOf(r);
- result=result.substring(x+r.length()+1);
- }
- return result;
- }
- /**
- * 获取词典(字典)中的信息、
- */
- public static String getFont(String content)
- {
- String result="";
- String reg="(?:.*?)<br>";
- //String str="<td class="longtd" title="VRBZ3">VRBZ3</td>";
- String str="你<br>nǐ<br>称对方,多称指一个人,有时也指称若干人:你厂。你方。<br>泛指任何人:你死我活。<br>您<br><br>笔画数:7;<br>部首:亻;<br>笔顺编号:3235234<br><br><br>";
- Pattern p=Pattern.compile(reg);
- Matcher m=p.matcher(content);
- int i=1;
- while(m.find()){
- System.out.println(m.group(0));
- if(!m.group(0).equals("<br>"))
- {
- result=result+i+"、 "+m.group(0);
- i++;
- }
-
- }
-
- return result;
- }
- public static String getDemo(String color,String content)
- {
- String result="";
- String reg="<font color="+color+">(?:.*?)</font>";
- //String str="<td class="longtd" title="VRBZ3">VRBZ3</td>";
- String str="<font color=red>china</font><font color=green>china</font>";
- Pattern p=Pattern.compile(reg);
- Matcher m=p.matcher(content);
-
- if(color.equals("blue"))
- {
- int i=1;
- while(m.find()){
- System.out.println(m.group(0));
- result=result+"<br> <font color=blue>"+i+" </font>"+m.group(0).replaceAll("size=4", "");
- i++;
- }
- }
- else
- {
-
-
- while(m.find()){
- System.out.println(m.group(0));
- result=result+"<br>"+m.group(0).replaceAll("size=4", "");
-
- }
-
- }
- return result;
- }
- public static String getUse(String content)
- {
- String result="";
- String reg="</font>(?:.*?)<br>";
- //String str="<td class="longtd" title="VRBZ3">VRBZ3</td>";
- String str="<font color=red>china</font><font color=green>china</font>";
- Pattern p=Pattern.compile(reg);
- Matcher m=p.matcher(content);
-
-
- while(m.find()){
- System.out.println(m.group(0));
- result=result+m.group(0).replaceAll("size=4", "");
-
- }
-
-
- return result;
- }
- public static String[] getContent(String content,String prefex)
- {
- String result[]=new String[3];
- String reg=prefex+"(?:.*?)</div>";
- //String str="<td class="longtd" title="VRBZ3">VRBZ3</td>";
- String str="<font color=red>china</font><font color=green>china</font>";
- Pattern p=Pattern.compile(reg);
- Matcher m=p.matcher(content);
-
- int count=0;
- while(m.find()){
- if(count<3)
- {
- result[count]=m.group(0);
- }
- count++;
- }
-
- return result;
- }
- public static boolean getContent(String content,String prefex,String reg)
- {
- boolean result=false;
- Pattern p=Pattern.compile(reg);
- Matcher m=p.matcher(content);
-
-
- while(m.find()){
-
- result=true;
- }
- return result;
- }
- public static String getC(String content,String prefex)
- {
- System.out.println("未处理的t内容"+content);
- int start=content.indexOf(prefex);
- String result="";
- if(start!=-1)
- {
- result=content.substring(start, content.length()-1);
- return result.replaceAll("</div>","")+"</div>";
- }
- else
- {
- result=content;
- return result;
- }
-
-
-
- }
- public static String getContent(String content)
- {
- String s_content[]=new String[2];
- for(int i=0;i<2;i++)
- {
- s_content[i]=content;
- }
- String v=getContent(s_content[0],"<div id=v>")[0];
-
- String c=getContent(s_content[1],"<div id=c>")[0];
- if(!getContent(c, "<div id=c>", "[u4E00-u9FA5]"))
- {
- c=getC(s_content[1],"<div id=c>");
- }
- return c+v;
- }
-
- public static String replaceTag(String content)
- {
- return content.replaceAll("<br>", " ").replaceAll("bword://", "").replaceAll("\\n", "").replaceAll("<img.*>.*</img>","").replaceAll("<img.*/>","");
- }
- /**
- * 获取现在时间
- * @return返回字符串格式 yyyy-MM-dd HH:mm:ss
- */
- public static String getStringDate() {
- Date currentTime = new Date();
- SimpleDateFormat formatter = new SimpleDateFormat("M月d日");
- String dateString = formatter.format(currentTime);
- return dateString;
- }
- public static String getNum(String content)
- {
- String result="";
- String reg="(?:.*?)。";
-
- //String str="<td class="longtd" title="VRBZ3">VRBZ3</td>";
- String str="(1)在体积、面积、数量、力量、强度等方面不及一般的或不及比较的对象(跟‘大’相对):~河|鞋~了点儿|我比你~一岁|声音太~。(2)短时间地:~坐|~住。(3)排行最末的:~儿子|他是我的~弟弟。(4)年纪小的人:一家大~|上有老,下有~。(5)指妾①。(6)谦辞,称自己或与自己有关的人或事物:~弟|~店。 …小白菜@(~ ";
- Pattern p=Pattern.compile(reg);
- Matcher m=p.matcher(content);
-
-
- while(m.find()){
- if(m.group(0).length()>3)
- {
- System.out.println(m.group(0));
- result=result+m.group(0)+"<br>";
- }
- else
- {
- result=content;
- }
- }
- if(result.length()==0)
- {
- result=content;
- }
-
- return result;
- }
- /**
- * @param args
- * @return
- * @return
- */
- public static String getContentSource(String contentSource,String tag,String tagId,int wordSize)
- {
- Document doc;
- String linkText="";
- //System.out.println("未处理的文本内容:"+contentSource);
- try {
- doc = Jsoup.parse(contentSource);
-
- Element content = doc.getElementById(tagId);
- if(content!=null){
- Elements texts = content.select(tag + "[id=" + tagId + "]");
- for (Element link : texts) {
-
- linkText = linkText + link.text();
- }
- }
- else
- {
- Element t = doc.getElementById("t");
- if(t!=null){
- Elements texts = t.select("div[id=t]");
- for (Element link : texts) {
-
- linkText = linkText + link.text();
- }
- }
- else
- {
- linkText=contentSource;
- }
- }
- } catch (Exception e) {
-
- e.printStackTrace();
- }
- //System.out.println("得到的文本内容:"+linkText);
- if(linkText.length()>300)
- {
- linkText=linkText.substring(0, wordSize)+"...";
- }
- return linkText;
- }
-
- public static String getContentText(String contentSource,String tag,String tagId)
- {
- Document doc;
- String linkText="";
- //System.out.println("未处理的文本内容:"+contentSource);
- try {
- doc = Jsoup.parse(contentSource);
-
- Element content = doc.getElementById(tagId);
- if(content!=null){
- Elements texts = content.select(tag + "[id=" + tagId + "]");
- for (Element link : texts) {
-
- linkText = linkText + link.text();
- }
- }
-
- } catch (Exception e) {
-
- e.printStackTrace();
- }
- //System.out.println("得到的文本内容:"+linkText);
- return linkText;
- }
- /**
- * 得到div id=m的内容
- * @param contentSource
- * @param tag
- * @param tagId
- * @return
- */
- public static String getContentSourceOfm(String contentSource,String tag,String tagId)
- {
- Document doc;
- String linkText="";
- //System.out.println("未处理的文本内容:"+contentSource);
- try {
- doc = Jsoup.parse(contentSource);
-
- Element content = doc.getElementById(tagId);
- if(content!=null){
- Elements texts = content.select(tag + "[id=" + tagId + "]");
- for (Element link : texts) {
-
- linkText = linkText + link.text();
- }
- }
- else
- {
- Element t = doc.getElementById("t");
- if(t!=null){
- Elements texts = t.select("div[id=t]");
- for (Element link : texts) {
-
- linkText = linkText + link.text();
- }
- }
- else
- {
- linkText=contentSource;
- }
- }
- } catch (Exception e) {
-
- e.printStackTrace();
- }
- //System.out.println("得到的文本内容:"+linkText);
- if(linkText.length()>300)
- {
- linkText=linkText.substring(0, 300)+"...";
- }
- return linkText;
- }
- public static boolean isHasRelativeWordlink(String content,String tag)
- {
- if(content.contains(tag))
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- /**
- * 得到相关词条的解释
- * @param content
- * @param request
- * @param tag
- * @return
- */
- public static String getRelativeWordlink(String content,HttpServletRequest request,String tag)
- {
- String param[]=content.split(tag);
- //URLEncoder encoder=null;
-
-
- content="参考词条:<a href="+request.getContextPath()+"/baikeSearchRelative.trs?searchWord="+param[1].replaceAll("\\n", "")+" target="_blank">"+param[1].replaceAll("\\n", "")+"</a>";
- return content;
- }
-
- /**
- * 得到相关词条的解释
- * @param content
- * @param request
- * @param tag
- * @return
- */
- public static DicDataModel getRelativeWordContent(String content,String tag,int type)
- {
-
-
- String param[]=content.split(tag);
- //URLEncoder encoder=null;
- DicDataModel dataModel=null;
-
- AppPhrasseDataResult appPhrasseDataResult=null;
-
- appPhrasseDataResult=new AppPhrasseDataResult();
-
- try {
- dataModel=appPhrasseDataResult.getBaikeInfo("TB_BAIKE", "name="+param[1].replaceAll("\\n", ""));
- } catch (Exception e) {
-
- e.printStackTrace();
- }
- if(type==0)
- {
- dataModel.setContent(DateUtil.getContentSource(dataModel.getContent(), "", "c",300),new Boolean("true"));
- }
- else
- {
-
- dataModel.setContent(dataModel.getContent(),new Boolean("true"));
-
- }
- return dataModel;
- }
- /**
- * 将相关词条添加到字符串数组中
- * @param contentSource
- * @param request
- * @return
- */
- public static String[] getRelativeWordlink(String contentSource,HttpServletRequest request)
- {Document doc;
- String relativeWord[]=null;
- int count=0;
- try {
- doc = Jsoup.parse(contentSource);
-
- Element content = doc.getElementById("m");
- //Elements links = content.getElementsByTag("td");
- if(content!=null){
- Elements links = content.select("a");
- relativeWord=new String[links.size()];
- for (Element link : links) {
-
- String linkText = link.text();
-
- if(linkText.contains("@"))
- {
- relativeWord[count]=linkText;
- }
- count++;
- }
- }
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return relativeWord;
- }
- /**
- * 将相关词条的细缆页链接加上
- * @param content
- * @param relativeWord
- * @param request
- * @return
- */
- public static String replaceRelativeWord(String content,String relativeWord[],HttpServletRequest request)
- {
- for(int i=0;i<relativeWord.length;i++)
- { String c=relativeWord[i];
- if(StringUtils.isNotEmpty(c))
- {
- String r=relativeWord[i].substring(1);
- content=content.replaceFirst(r, request.getContextPath()+"/baikeSearchRelative.trs?searchWord="+r);
- }
- }
- return content;
- }
- /**
- * 得到词条的目录链接:
- * 默认取前5条链接
- * @param content
- * @return
- */
- public static String getLink(String contentSource, String linkContent,int count,String tag) {
- Document doc;
- String linkText = "";
- try {
- doc = Jsoup.parse(contentSource);
-
- Element content = doc.getElementById(tag);
- if(content!=null){
- Elements links = content.select("p");
-
- int i=1;
- for (Element link : links) {
- String href=getChildlink(link.outerHtml());
- if(StringUtils.isNotEmpty(href))
- {
- linkText = linkText +"<p>"+href+"</p>";
- }
- if(i==count)
- {
- break;
- }
-
- i++;
- }
- /*if(i<count)
- {
- linkText = linkText+getLinkOfm(linkContent, count-i,"m");
- }*/
- }
-
- else
- {
- linkText=contentSource;
- }
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return linkText;
- }
- /**
- * 链接的数量不足时增加m标签的内容
- * @param contentSource
- * @param linkContent
- * @param count
- * @param tag
- * @return
- */
- public static String getLinkOfm(String linkContent,int count,String tag) {
- Document doc;
- String linkText = "";
- try {
- doc = Jsoup.parse(linkContent);
-
- Element content = doc.getElementById(tag);
- if(content!=null){
- Elements links = content.select("p");
-
- int i=0;
- for (Element link : links) {
- linkText = linkText +"<p>"+ getChildlink(link.outerHtml())+"</p>";
- if(i==count)
- {
- break;
- }
-
- i++;
- }
-
- }
-
- else
- {
- linkText=linkContent;
- }
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return linkText;
- }
- /**
- * 获取链接的子链接的第一个链接
- * @param contentSource
- * @return
- */
- public static String getChildlink(String contentSource) {
-
- Document doc;
- String linkText = null;
- try {
- doc = Jsoup.parse(contentSource);
-
- Elements links = doc.select("a");
- if (links != null) {
- int i = 0;
- for (Element link : links) {
- if (i == 0) {
- linkText = link.outerHtml();
- }
- i++;
- }
- } else {
- linkText = contentSource;
- }
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return linkText;
- }
- public static int getNowTime(int type){
- Calendar m_cal = Calendar.getInstance();
- if(type==1)
- {
- return m_cal.get(Calendar.MONTH)+1;
- }
- else
- return m_cal.get(Calendar.DAY_OF_MONTH);
- }
- public static void main(String[] args) {
-
- System.out.println(getContentText("<div id=t><p></div>n","div","t"));
- }
-
- }
复制代码
|