个人随笔
目录
工具类:Java版本HTML字符串去掉HTML标签
2020-09-11 23:03:51

我们写完一篇文章,会在文章中截取前面一串文字用来在列表显示,但是因为是用富文本编辑的,所以也会含有html标签,如果直接在页面列表展示,会影响页面布局,如果直接纯文本展示,会展示出html标签。

这里有一个工具类可以很方便的去除掉字符串中的html标签,如下:

  1. public class Html2Text extends HTMLEditorKit.ParserCallback{
  2. private static Html2Text h2t = new Html2Text();
  3. private Html2Text(){};
  4. private StringBuffer s;
  5. private void parse(String str) throws IOException {
  6. InputStream iin = new ByteArrayInputStream(str.getBytes());
  7. Reader in = new InputStreamReader(iin);
  8. s = new StringBuffer();
  9. ParserDelegator delegator = new ParserDelegator();
  10. // the third parameter is TRUE to ignore charset directive
  11. delegator.parse(in, this, Boolean.TRUE);
  12. iin.close();
  13. in.close();
  14. }
  15. public void handleText(char[] text, int pos) {
  16. s.append(text);
  17. }
  18. public String getText() {
  19. return s.toString();
  20. }
  21. public static String getContent(String str) {
  22. try {
  23. h2t.parse(str);
  24. } catch (IOException e) {
  25. // TODO Auto-generated catch block
  26. e.printStackTrace();
  27. }
  28. return h2t.getText();
  29. }
  30. public static void main (String[] args) {
  31. System.out.println(Html2Text.getContent("<p>这里介绍PYTHON的头文件含义<br>1、第一行<br> 脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单。</p>\n" +
  32. "<pre class=\"prettyprint linenums prettyprinted\" style=\"\"><ol class=\"linenums\"><li class=\"L0\"><code><span class=\"co"));
  33. }
  34. }

运行后结果如下:

可以看到,标签都被过滤啦,再也不用正则表达式来替换。

 1519

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2