/** * 由_parserMaxFirst(...) 或者 _parserMixFirst(...)产生的 范例文本格式 * * @param text 范例文本:"在杭州 信 雅 达 股份有限公司"; * @return 修正可能性 新词 后的分词字符串 */ private static String reviseNewWord(String text) { if (StringUtil.isEmpty(text)) { return ""; } StringBuffer buf = new StringBuffer(); text = text.replaceAll("\\s{2,}", " "); // 跳过前1个字符 buf.append(text.substring(0, 1)); // 分析中间文本 for (int i = 1; i < text.length() - 1; i++) { String subStr = text.substring(i - 1, i + 2); int j = 0; boolean flag = false; // 查找出连续的单字词串 while (isSingleChinese(subStr)) { j += 2; flag = true; if ((i + j + 2) > text.length()) { break; } subStr = text.substring(i + j - 1, i + j + 2); } if (flag) { buf.append(text.substring(i, i + j - 1).replaceAll("\\s", "")).append(" "); i += j - 1; } else { buf.append(text.charAt(i)); } } // 跳过最后3个文本 buf.append(text.substring(text.length() - 1, text.length())); return buf.toString(); }
/** * 判断一个字符是否为空白字符(包括中文空白字符 和 英文空白字符) * * @param c 原始字符 * @return ture是空白字符,false不是空白字符。 */ public static boolean isWhitespace(char c) { return StringUtil.isWhitespace(c); }