Метод Position.getPreviousRange
Метод возвращает диапазон, который расположен перед текущим диапазоном. Размеры текущего и предыдущего диапазонов зависят от выбранной единицы текста. Если выбранная единица текста отлична от Paragraph, то работа метода Position.getPreviousRange ограничена текущим абзацем.
Вызов
public Range getPreviousRange(TextUnit textUnit)
Параметры
textUnit:единица текста, определяющая размеры диапазонов, тип TextUnit.
Возвращает
- предыдущий диапазон документа, тип Range.
Пример для текстового документа
Position sentenceBegin = document.getRange().getBegin().getNextRange(TextUnit.Sentence).getBegin();
Range previousSentence = sentenceBegin.getPreviousRange(TextUnit.Sentence);
Range previousWord = sentenceBegin.getPreviousRange(TextUnit.Word);
while (previousWord.getContentEnd().compare(previousWord.getBegin()) == 1)
{
previousWord = previousWord.getBegin().getPreviousRange(TextUnit.Word);
}
Range previousCharacter = sentenceBegin.getPreviousRange(TextUnit.Character);
previousCharacter = previousCharacter.getBegin().getPreviousRange(TextUnit.Character);
previousCharacter = previousCharacter.getBegin().getPreviousRange(TextUnit.Character);
Console.WriteLine(previousSentence.extractText());
// Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Console.WriteLine(previousWord.extractText()); // aliqua
Console.WriteLine(previousCharacter.extractText()); // a
Пример для табличного документа
Table sheet = document.getBlocks().getTable(0);
Cell cell = sheet.getCell("B2");
Position cellEnd = cell.getRange().getContentEnd();
Range sentence = cellEnd.getPreviousRange(TextUnit.Sentence);
Console.WriteLine(sentence.extractText()); // Second sentence.