java根据html生成摘要
转自:http://java.freesion.com/article/48772295755/
开发一个系统,需要用到这个,根据html生成你指定多少位的摘要
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)); } }
java根据html生成摘要的更多相关文章
- JAVA调用 keytool 生成keystore 和 cer 证书
keytool是一个Java数据证书的管理工具, keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里, 包含两种数据: 密钥实体( ...
- gen目录无法更新,或者gen目录下的R.JAVA文件无法生成
gen目录无法更新,或者gen目录下的R.JAVA文件无法生成 1.gen目录的用处 android gen目录下的R.java并不是由用户创建,而是android工程本身将android的资源进行自 ...
- java中如何生成可执行的jar文件
java中如何生成可执行的jar文件 最简单的方法就是: jar -cfe Card.jar CardLayoutDemo CardLayoutDemo$1.class CardLayoutDemo$ ...
- 通过java来批量生成身份证号
通过java来批量生成身份证号,方便来测试程序. package com.diyvc.controller.user; import java.util.Calendar; import java.u ...
- JAVA基础学习之命令行方式、配置环境变量、进制的基本转换、排序法、JAVA文档生成等(1)
1.命令行方式 dos命令行,常见的命令: dir:列出当前目录下的文件以及文件夹 md:创建目录 rd:删除目录 cd:进入指定目录 cd..:退回到上一级目录 cd/:退回到根目录 del:删除文 ...
- 利用Java随机,生成随机学生数据
为模拟向数据库中大量插入学生数据(注:此处应该用PreparedStatement.batchUpdate等批处理提高效率)的情形,通过Java随机来生成学生数据. 一.要生成的学生数据 studen ...
- Java订单号生成,唯一订单号(日均千万级别不重复)
Java订单号生成,唯一订单号 相信大家都可以搜索到很多的订单的生成方式,不懂的直接百度.. 1.订单号需要具备以下几个特点. 1.1 全站唯一性. 1.2 最好可读性. 1.3 随机性,不能重复,同 ...
- 用java从0生成一个简单的excel
用java从0生成一个简单的excel 目标 用代码实现对一个excel的基础操作,包括创建,插入文字,(好像就这些了),生成的excel可以用wps打开,如果直接用c++的文件流会生成假的xls表格 ...
- Java WebService接口生成和调用 图文详解>【转】【待调整】
webservice简介: Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Service规范实施的应用之间 ...
随机推荐
- redux-amrc:用更少的代码发起异步 action
很多人说 Redux 代码多,开发效率低.其实 Redux 是可以灵活使用以及拓展的,经过充分定制的 Redux 其实写不了几行代码.今天先介绍一个很好用的 Redux 拓展-- redux-amrc ...
- SQL Server镜像自动生成脚本
SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...
- Java 输出流中的flush方法
转自:http://blog.csdn.net/jiyangsb/article/details/50984440 java中的IO流中的输出流一般都有flush这个操作,这个操作的作用是强制将缓存中 ...
- Angular企业级开发(2)-搭建Angular开发环境
1.集成开发环境 个人或团队开发AngularJS项目时,有很多JavaScript编辑器可以选择.使用优秀的集成开发环境(Integrated Development Environment)能节省 ...
- 搭建属于自己的VIP积分系统(1)
很久没写博客了,如果有写得不好的地方,还请多多见谅. 架构设计 需求分析 这篇文章主要是介绍此VIP系统的基础架构.说实在的,我其实对 架构方面也不是很懂,我这套框架 还是拿别人的东西改过来的,并不是 ...
- [原] Cgroup CPU, Blkio 测试
关于Cgroup的简单测试 [toc] 简单介绍Cgroup (如果对cgroup熟悉可以忽略) 一般情况下,cgroup挂载到一个虚拟文件目录,然后可以通过文件系统的API对其操作. ># m ...
- spring boot 部署为jar
前言 一直在ide中敲代码,使用命令行mvn spring-boot:run或者gradlew bootRun来运行spring boot项目.想来放到prod上面也应该很简单.然而今天试了下,各种问 ...
- 【架构设计】分布式文件系统 FastDFS的原理和安装使用
本文地址 分享提纲: 1.概述 2. 原理 3. 安装 4. 使用 5. 参考文档 1. 概述 1.1)[常见文件系统] Google了一下,流行的开源分布式文件系统有很多,介绍如下: -- mo ...
- Struts2入门(六)——国际化
一.前言 1.1.国际化简介 国际化是指应用程序在运行的时候,根据客户端请求来自的国家地区.语言的不同而显示不同的界面(简单说就是根据你的地区显示相关地区的语言,如果你现在在英国,那么显示的语言就是英 ...
- 在 Windows7 上按照 MySQL5.7
在 Windows7 上按照 MySQL5.7 1.从官网下载最新版本的 MySQL,这里下载的是 mysql-5.7.17-win32: 2.将下载的 mysql-5.7.17-win32.zip ...