Реферат: Фильтрация строк с использованием автоматов
StringUtils.isSymbol(aSource.getSource(),
aSource.getPosition() + 2, CHARACTER))
{
// в результат выводим нужную строку
aResult.append("…");
// выставляем состояние автомату, чтобы он
// переходилкследующемусимволу
aResult.setLastRuleResult(RuleResult.CHAR_FINISHED_PROCESSING);
// перескакиваем обработку всех трех точек
aSource.addToPosition(3);
}
}
}
В листинге 4 представлено правило общей обработки «двойных символов». Это правило, которое является базой для множества правил форматирования, позволяющих выделять текст «жирным», «наклонным» и так далее, не прибегая к тегам HTML, но обрамляя нужные куски текста в «звездочки», «наклонные черты» и другие легко запоминающиеся символы.
Листинг 4. Реализация правила обработки «двойных символов».
public void process(Source aSource, Result aResult, IFilter aFilter) { int nextPosition = aSource.getPosition() + 1; // проверяется, что следующий символ – такой же, как и предыдущий if (isSymbol(aSource.getSourceString(), nextPosition, getSymbol())) { // смотрим на текущее состояние правила, чтобы определить, // создавать открывающий или закрывающий тег if (getState().equals(DoubleCharacterState.STATE_OUT)) { // открывающий тег setState(DoubleCharacterState.STATE_IN); aSource.addToPosition(2); aResult.append(getPrefix()); К-во Просмотров: 419
Бесплатно скачать Реферат: Фильтрация строк с использованием автоматов
|