package com.blinkcoder.kit; import org.apache.commons.lang3.CharUtils; import org.apache.commons.lang3.StringUtils; import org.jsoup.Jsoup; /** * User: Michael Chen * Email: yidongnan@gmail.com * Date: 13-12-9 * Time: 上午10:40 */ public class FormatKit { /** * 删除html中多余的空白 * * @param html * @return */ public static String trim_html(String html) { return StringUtils.replace(StringUtils.replace(html, "\r\n", ""), "\t", ""); } /** * 格式化HTML文本 * * @param context * @return */ public static String text(String context) { if (context == null) return ""; String html = StringUtils.replace(context, "<", "<"); return StringUtils.replace(html, ">", ">"); } /** * 格式化HTML文本 * * @param context * @return */ public static String html(String context) { if (context == null) return ""; String html = context; html = StringUtils.replace(html, "'", "'"); html = StringUtils.replace(html, "\"", """); html = StringUtils.replace(html, "\t", "  "); html = StringUtils.replace(html, "<", "<"); html = StringUtils.replace(html, ">", ">"); return html; } /** * 格式化HTML文本 * * @param content * @return */ public static String rhtml(String content) { if (StringUtils.isBlank(content)) return content; String html = content; html = StringUtils.replace(html, "&", "&"); html = StringUtils.replace(html, "<", "<"); html = StringUtils.replace(html, ">", ">"); return html; } public static String plain_text(String html) { if (StringUtils.isBlank(html)) return ""; return Jsoup.parse(html).text(); } /** * 字符串智能截断 * * @param str * @param maxWidth * @return */ public static String abbreviate(String str, int maxWidth) { if (str == null) return null; if (str.length() <= maxWidth) return str; StringBuilder buf = new StringBuilder(); int len = str.length(); int wc = 0; int ncount = 2 * maxWidth - 3; for (int i = 0; i < len; ) { if (wc >= ncount) break; char ch = str.charAt(i++); buf.append(ch); wc += 2; if (wc >= ncount) break; if (CharUtils.isAscii(ch)) { wc -= 1; if (i >= len) break; char nch = str.charAt(i++); buf.append(nch); if (!CharUtils.isAscii(nch)) wc += 2; else wc += 1; } } buf.append("..."); return buf.toString(); } }