在Java中轻松将HTML格式文本转换为纯文本的方法示例(保留换行)

第一步:引入Jsoup和lang和lang3的依赖:

Jsoup是HTML解析器
lang和lang3这两个包里有转换所需的工具类

<dependency>
	<groupId>org.jsoup</groupId>
	<artifactId>jsoup</artifactId>
	<version>1.11.3</version>
</dependency>
<dependency>
	<groupId>commons-lang</groupId>
	<artifactId>commons-lang</artifactId>
	<version>2.6</version>
</dependency>
<dependency>
	<groupId>org.apache.commons</groupId>
	<artifactId>commons-lang3</artifactId>
	<version>3.4</version>
</dependency>

第二步:直接使用即可:

import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.safety.Whitelist;

/**
 * @author Piconjo
 */
public class Html2PlainText {
  public static String convert(String html)
  {
    if (StringUtils.isEmpty(html))
    {
      return "";
    }

    Document document = Jsoup.parse(html);
    Document.OutputSettings outputSettings = new Document.OutputSettings().prettyPrint(false);
    document.outputSettings(outputSettings);
    document.select("br").append("\\n");
    document.select("p").prepend("\\n");
    document.select("p").append("\\n");
    String newHtml = document.html().replaceAll("\\\\n", "\n");
    String plainText = Jsoup.clean(newHtml, "", Whitelist.none(), outputSettings);
    String result = StringEscapeUtils.unescapeHtml(plainText.trim());
    return result;
  }
}

使用测试:

到此这篇关于在Java中轻松将HTML格式文本转换为纯文本的方法示例(保留换行)的文章就介绍到这了,更多相关Java HTML转换为纯文本内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java实现从Html文本中提取纯文本的方法

    1.应用场景:从一份html文件中或从String(是html内容)中提取纯文本,去掉网页标签: 2.代码一:replaceAll搞定 //从html中提取纯文本 public static String StripHT(String strHtml) { String txtcontent = strHtml.replaceAll("</?[^>]+>", ""); //剔出<html>的标签 txtcontent = txtcont

  • java使用htmlparser提取网页纯文本例子

    复制代码 代码如下: package com.test; import org.htmlparser.Node;import org.htmlparser.NodeFilter;import org.htmlparser.Parser;import org.htmlparser.filters.TagNameFilter;import org.htmlparser.tags.TableTag;import org.htmlparser.util.NodeList; /*** 标题:利用htmlp

  • java过滤html标签获取纯文本信息的实例

    如下所示: package com.lyt.base.util; import java.util.regex.Pattern; public class FilterHtmlUtil { public static String Html2Text(String inputString){ String htmlStr = inputString; //含html标签的字符串 String textStr =""; java.util.regex.Pattern p_script;

  • 在Java中轻松将HTML格式文本转换为纯文本的方法示例(保留换行)

    第一步:引入Jsoup和lang和lang3的依赖: Jsoup是HTML解析器 lang和lang3这两个包里有转换所需的工具类 <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.11.3</version> </dependency> <dependency> <group

  • Java中使用LocalDate根据日期来计算年龄的实现方法

    Java中和日期直接相关的类有很多,平时最常用到的就是java.util package下面的Date和Calendar,需要用到格式的时候还会用到java.text.SimpleDateFormat 首先吐槽一下,Date和Calendar实际用起来还是有一些别扭的,刚开始用的时候不熟悉,老是分不清Date和Calendar类的具体用法和区别. 而且Calendar类的set方法来设置日期时又有一些反人类,设置月份的时候总是要脑补一下减去1,比如要设置为2018年1月6日就要设置成2018,0

  • Java中SpringSecurity密码错误5次锁定用户的实现方法

    Spring Security简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作. 下面看下实例代码: 第

  • 基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. public static byte[] int2byte(int res) { byte[] targets = new byte[4]; targets[0] = (byte) (res & 0xf

  • java 中String和StringBuffer与StringBuilder的区别及使用方法

    java 中String和StringBuffer与StringBuilder的区别及使用方法 1. String 类 String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间. String a = "a"; //假设a指向地址0x0001 a = "b";//重新赋值后a指向地址0x0002,但0x0001地址中保存的"a"依旧存在,但已经不再是a所指向的,a 已经指向

  • Java中两个大数之间的相关运算及BigInteger代码示例

    Java中两个大数之间的相关运算及BigInteger两段实例代码,具体如下. 大数相减 import java.util.Scanner; /* 进行大数相减,只能对两个正数进行相减 */ public class BigNumber { public static void main(String[] args) { Scanner scan=new Scanner(System.in); String a,b; while (scan.hasNext()) { BigNumber big=

  • Java中byte[]、String、Hex字符串等转换的方法

    代码如下所示: /*输入一个byte和byte[]合并为byte[]*/ public byte[] byteMerger(byte byte_1, byte[] byte_2) { byte[] byte_3 = new byte[1 + byte_2.length]; byte_3[0] = byte_1; System.arraycopy(byte_2, 0, byte_3, 1, byte_2.length); return byte_3; } /*输入一个byte[]和byte[]合并

  • Java中利用Alibaba开源技术EasyExcel来操作Excel表的示例代码

    一.读Excel 1.Excel表格示例 2.对象示例 @Data public class DemoData { private String string; private Date date; private Double doubleData; } 3.监听器(重点部分) // 有个很重要的点 DemoDataListener 不能被spring管理,要每次读取excel都要new,然后里面用到spring可以构造方法传进去 public class DemoDataListener e

  • 详解java中String值为空字符串与null的判断方法

    Java空字符串与null的区别 1.类型 null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null. ""表示的是一个空字符串,也就是说它的长度为0.例如声明一个字符串String s="". 2.内存分配 String a=null:表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间. String s="":表示声明一个字符串类型的引用,其值为""空

  • django 实现后台从富文本提取纯文本

    前言: 很多时候我们都会用富文本,比如说在版权区.博客文章编辑时等等.但是如果我们要做一个搜索的功能,去从富文本中查找关键字,就需要将富文本中的文本了.但是 django 并没有专门函数去做.这个时候我们就需要使用正则或者是提取前端的过滤器 striptags 方法. 开始: 一.用正则 import re content = ''.join(re.findall(">(.*?)<", content, re.S)) re.S 将换行的也算进去,一般都要加上 二.使用 s

随机推荐