Реферат: Фильтрация строк с использованием автоматов

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
Бесплатно скачать Реферат: Фильтрация строк с использованием автоматов