java根據html生成摘要

 

轉自:http://java.freesion.com/article/48772295755/html

開發一個系統,須要用到這個,根據html生成你指定多少位的摘要java

package com.chendaojun.util;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class ParseHtml {
    public static void main(String[] args){
        //能夠將註釋打開逐個試驗
        
        ParseHtml ph = new ParseHtml();
        String html="";
        
        //打開下面兩行可進行鏈接mysql並解析html
        //html=ph.getHtmlFromMysql();
        //System.out.println(ph.parseHtml(html));
        //System.out.println(ph.parseHtml(html,300));
        
        //打開下面兩行可進行得到路徑文件內容並解析html,路徑根據實際修改
        //html=ph.getHtml("E:\\1478300.html");
        //System.out.println(ph.parseHtml(html));
        //System.out.println(ph.parseHtml(html,300));
        
        //指定長度直接解析
        //html=ph.parseHtml("<p>sdfsdf</p><br><div>sdfsdfsdf</div>",10);
        //System.out.println(html);
        
        //直接解析
        html=ph.parseHtml("<p>sdfsdf</p><br><div>sdfsdfsdf</div>sdflksdflksdjfk<dkf");
        System.out.println(html);
    }
    
    //從mysql中取出在線編輯器存進去的html文章
    public String getHtmlFromMysql(){
        String url="jdbc:mysql://localhost:3306/blog";
        String userName="root";
        String passWord="root";
        String className="com.mysql.jdbc.Driver";
        String sql="select text from blog where id=5";
        String html="";
        Connection conn=null;
        Statement stmt=null;
        ResultSet rs=null;
        try{
            Class.forName(className);
            conn=DriverManager.getConnection(url,userName,passWord);
            stmt=conn.createStatement();
            rs=stmt.executeQuery(sql);
            while(rs.next()){
                //得到html內容
                html=rs.getString("text");
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try{
                if(rs!=null){
                    rs.close();
                    rs=null;
                }
                if(stmt!=null){
                    stmt.close();
                    stmt=null;
                }
                if(conn!=null){
                    conn.close();
                    conn=null;
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }
        return html;
    }
    
    //從指定路徑讀取html文件
    public String getHtml(String filePath) {
        String html = "";
        FileInputStream fis = null;
        InputStreamReader isr = null;
        BufferedReader br = null;
        try {
            File file = new File(filePath);
            fis = new FileInputStream(file);
            isr = new InputStreamReader(fis);
            br = new BufferedReader(isr);
            String bRead = "";
            while ((bRead = br.readLine()) != null) {
                html += bRead;
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if(br!=null){
                    br.close();
                    br=null;
                }
                if(isr!=null){
                    isr.close();
                    isr=null;
                }
                if(fis!=null){
                    fis.close();
                    fis=null;
                }
                
            } catch (Exception e) {
                e.printStackTrace();
            }

        }
        return html;

    }
    
    //任意html,殘缺不全也能夠
    public String parseHtml(String html) {
        /*
         * <.*?>爲正則表達式,其中的.表示任意字符,*?表示出現0次或0次以上,此方法能夠去掉雙頭標籤(雙頭針對於殘缺的標籤)
         * "<.*?"表示<尖括號後的全部字符,此方法能夠去掉殘缺的標籤,及後面的內容
         * " ",如有多種此種字符,可用同一方法去除
         */
        html = html.replaceAll("<.*?>", "  ").replaceAll(" ", " ");
        html = html.replaceAll("<.*?", "");
        return (html + "...");
    }
    
    //能夠指定截取長度
    public String parseHtml(String html,int length) {
        if(html.length()<length){
            return "截取長度超過文件內容總長";
        }
        return parseHtml(html.substring(0, length));
    }
}
相關文章
相關標籤/搜索