Ejemplo n.º 1
0
  /**
   * 由_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();
  }
Ejemplo n.º 2
0
 /**
  * 判断一个字符是否为空白字符(包括中文空白字符 和 英文空白字符)
  *
  * @param c 原始字符
  * @return ture是空白字符,false不是空白字符。
  */
 public static boolean isWhitespace(char c) {
   return StringUtil.isWhitespace(c);
 }