package cn.newgxu.bbs.common.util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 管理非法字符串的工具类 * * @author hjc * @since 4.0.0 * @version $Revision 1.1$ */ public class IllegalWordUtil { public static String ILLEGAL_USERNAME = "管理|江泽民|胡锦涛|朱容基|无限网"; public static String ILLEGAL_TITLE = "强奸|轮奸|法轮|李洪志|ln-chache|qld5159|pass168|icpcn"; public static String ILLEGAL_WORD = "管理|江泽民|胡锦涛|朱容基|无限网|强奸|轮奸|法轮|李洪志|ln-chache|qld5159|pass168|icpcn"; private static String getReplace(String input) { int count = input.length(); StringBuffer sb = new StringBuffer(count); for (int i = 0; i < count; i++) { sb.append("*"); } return sb.toString(); } private static String WordConverter(String input, String type) throws Exception { Pattern pattern = null; if (type.equals("name")) { pattern = Pattern.compile(ILLEGAL_USERNAME, 2); } else if (type.equals("title")) { pattern = Pattern.compile(ILLEGAL_TITLE, 2); } Matcher matcher = pattern.matcher(input); StringBuffer stringbuffer = new StringBuffer(); for (boolean flag = matcher.find(); flag && matcher.group(0) != null; flag = matcher .find()) { matcher.appendReplacement(stringbuffer, getReplace(matcher.group(0))); } matcher.appendTail(stringbuffer); return stringbuffer.toString(); } public static String getFilterString(String input, String type) { try { return WordConverter(input, type); } catch (Exception e) { e.printStackTrace(); return input; } } }