您的位置:首页 > 编程语言 > Java开发

java将富文本字符串(HTML)转为文本(Text)

2017-11-20 17:58 204 查看
话不多说,直接上代码:

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;

import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.parser.ParserDelegator;

public class Html2Text extends HTMLEditorKit.ParserCallback {

private static Html2Text html2Text = new Html2Text();

StringBuffer s;

public Html2Text() {
}

public void parse(String str) throws IOException {

InputStream iin = new ByteArrayInputStream(str.getBytes());
Reader in = new InputStreamReader(iin);
s = new StringBuffer();
ParserDelegator delegator = new ParserDelegator();
// the third parameter is TRUE to ignore charset directive
delegator.parse(in, this, Boolean.TRUE);
iin.close();
in.close();
}

public void handleText(char[] text, int pos) {
s.append(text);
}

public String getText() {
return s.toString();
}

public static String getContent(String str) {
try {
html2Text.parse(str);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return html2Text.getText();
}
}


代码是网上copy过来的,稍微修改为接受字符串,并在内部写了一个极其简陋的单例,使用的是java的api,效果极其的好,比起网上使用正则表达式替换来得快,正确性也比较高,我试过用网上正则的,都是不太理想,情况复杂点的,都挂了。

使用方式如下:

String text = Html2Text.getContent("你的富文本字符串");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: