code: protected void segmentAfterRule(String sentence, String normalized, List<String> wordList)
      {
          if (!enableRuleBasedSegment)
          {
              segmenter.segment(sentence, normalized, wordList);
              return;
          }
          int start = 0;
          int end = start;
          byte preType = typeTable[normalized.charAt(end)];
          byte curType;
          while (++end < normalized.length())
          {
              curType = typeTable[normalized.charAt(end)];
              if (curType != preType)
              {
                  if (preType == CharType.CT_NUM)
                  {
                      // 浮点数识别
                      if ("，,．.".indexOf(normalized.charAt(end)) != -1)
                      {
                          if (end + 1 < normalized.length())
                          {
                              if (typeTable[normalized.charAt(end + 1)] == CharType.CT_NUM)
                              {
                                  continue;
                              }
                          }
                      }
                      else if ("年月日时分秒".indexOf(normalized.charAt(end)) != -1)
                      {
                          preType = curType; // 交给统计分词
                          continue;
                      }
                  }
                  pushPiece(sentence, normalized, start, end, preType, wordList);
                  start = end;
              }
              preType = curType;
          }
          if (end == normalized.length())
              pushPiece(sentence, normalized, start, end, preType, wordList);
      }
docs: 丑陋的规则系统
  
  @param sentence
  @param normalized
  @param wordList