BreakIterator Класс

Определение

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

[Android.Runtime.Register("java/text/BreakIterator", DoNotGenerateAcw=true)]
public abstract class BreakIterator : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.ICloneable
[<Android.Runtime.Register("java/text/BreakIterator", DoNotGenerateAcw=true)>]
type BreakIterator = class
    inherit Object
    interface ICloneable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Наследование
BreakIterator
Атрибуты
Реализации

Комментарии

Класс BreakIterator реализует методы для поиска расположения границ в тексте. Экземпляры BreakIterator сохраняют текущее положение и сканируют текст, возвращая индекс символов, в которых находятся границы. Внутренне сканирует текст с помощью CharacterIteratorи, таким образом, может сканировать текст, BreakIterator удерживаемый любым объектом, реализующим этот протокол. Объект StringCharacterIterator используется для сканирования String объектов, переданных в setText. Объект CharacterIterator не должен изменяться после того, как он был передан в setText. Если текст в объекте CharacterIterator изменен, вызывающий объект должен сбросить, BreakIterator вызвав .setText

Для создания экземпляров различных типов итераторов разрывов используются фабричные методы, предоставляемые этим классом. В частности, используйте getWordInstance, getLineInstance, getSentenceInstanceи getCharacterInstance для создания BreakIteratorобъектов , которые выполняют анализ границ слов, строк, предложений и символов соответственно. Один может BreakIterator работать только с одной единицей (словом, строкой, предложением и т. д.). Для каждого анализа границ единиц необходимо использовать другой итератор.

> Анализ границ строк определяет, где может быть нарушена текстовая строка при переносе строки. Механизм правильно обрабатывает знаки препинания и дефисы. Фактические разрывы строк также должны учитывать доступную ширину линий и обрабатываются программным обеспечением более высокого уровня.

> Анализ границ предложения позволяет выбирать точки в числах и сокращениях, а также знаки препинания, такие как кавычки и круглые скобки.

"word"> Word анализ границ используется функциями поиска и замены, а также в приложениях для редактирования текста, которые позволяют пользователю выделять слова двойным щелчком мыши. Word выбор обеспечивает правильную интерпретацию знаков препинания в словах и в следующих словах. Символы, которые не являются частью слова, например символы или знаки препинания, имеют разрывы слов с обеих сторон.

> Анализ границ символов позволяет пользователям взаимодействовать с символами так, как они ожидают, например при перемещении курсора по текстовой строке. Анализ границ символов обеспечивает правильную навигацию по строкам символов независимо от того, как хранится символ. Возвращаемыми границами могут быть дополнительные символы, объединяющие последовательности символов или лигатурные кластеры. Например, символ с диакритической символикой может храниться как базовый символ и диакритический знак. То, что пользователи считают символом, может отличаться в разных языках.

Экземпляры BreakIterator , возвращаемые фабричными методами этого класса, предназначены для использования только с естественными языками, а не для текста языка программирования. Однако можно определить подклассы, которые маркеризируют язык программирования.

<strong>Examples</strong>:

Создание и использование границ текста: <blockquote>

public static void main(String args[]) {
                 if (args.length == 1) {
                     String stringToExamine = args[0];
                     //print each word in order
                     BreakIterator boundary = BreakIterator.getWordInstance();
                     boundary.setText(stringToExamine);
                     printEachForward(boundary, stringToExamine);
                     //print each sentence in reverse order
                     boundary = BreakIterator.getSentenceInstance(Locale.US);
                     boundary.setText(stringToExamine);
                     printEachBackward(boundary, stringToExamine);
                     printFirst(boundary, stringToExamine);
                     printLast(boundary, stringToExamine);
                 }
            }

</blockquote>

Печать каждого элемента по порядку: <blockquote>

public static void printEachForward(BreakIterator boundary, String source) {
                int start = boundary.first();
                for (int end = boundary.next();
                     end != BreakIterator.DONE;
                     start = end, end = boundary.next()) {
                     System.out.println(source.substring(start,end));
                }
            }

</blockquote>

Печать каждого элемента в обратном порядке: <blockquote>

public static void printEachBackward(BreakIterator boundary, String source) {
                int end = boundary.last();
                for (int start = boundary.previous();
                     start != BreakIterator.DONE;
                     end = start, start = boundary.previous()) {
                    System.out.println(source.substring(start,end));
                }
            }

</blockquote>

Первый элемент печати: <blockquote>

public static void printFirst(BreakIterator boundary, String source) {
                int start = boundary.first();
                int end = boundary.next();
                System.out.println(source.substring(start,end));
            }

</blockquote>

Напечатать последний элемент: <blockquote>

public static void printLast(BreakIterator boundary, String source) {
                int end = boundary.last();
                int start = boundary.previous();
                System.out.println(source.substring(start,end));
            }

</blockquote>

Печать элемента в указанной позиции: <blockquote>

public static void printAt(BreakIterator boundary, int pos, String source) {
                int end = boundary.following(pos);
                int start = boundary.previous();
                System.out.println(source.substring(start,end));
            }

</blockquote>

Найдите следующее слово: <blockquote>

{@code
            public static int nextWordStartAfter(int pos, String text) {
                BreakIterator wb = BreakIterator.getWordInstance();
                wb.setText(text);
                int last = wb.following(pos);
                int current = wb.next();
                while (current != BreakIterator.DONE) {
                    for (int p = last; p < current; p++) {
                        if (Character.isLetter(text.codePointAt(p)))
                            return last;
                    }
                    last = current;
                    current = wb.next();
                }
                return BreakIterator.DONE;
            }
            }

(Итератор, возвращаемый BreakIterator.getWordInstance(), уникален тем, что позиции останова, возвращаемые им, не представляют начало и конец итерации. То есть итератор разбиения предложения возвращает разрывы, каждый из которых представляет конец одного предложения и начало следующего. При использовании итератора разбиения по словам символы между двумя границами могут быть словом или знаками препинания или пробелами между двумя словами. Приведенный выше код использует простую эвристику, чтобы определить, какая граница является началом слова: если символы между этой границей и следующей границей содержат по крайней мере одну букву (это может быть буква алфавита, идеограф CJK, слог Хангыл, знак каны и т. д.), то текст между этой границей и следующим является словом; в противном случае это материал между словами.) </blockquote>

Добавлено в версии 1.1.

Документация по Java для java.text.BreakIterator.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

Конструкторы

BreakIterator()

Конструктор.

BreakIterator(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Поля

Done

МЕТОД DONE возвращается предыдущим(), next(), next(int), previous(int) и following(int) при достижении первой или последней границы текста.

Свойства

CharacterInstance

Возвращает новый BreakIterator экземпляр для разрывов символов для языкового стандарта по умолчанию Locale#getDefault().

Class

Возвращает класс среды выполнения данного объекта Object.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

(Унаследовано от Object)
JniPeerMembers

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

LineInstance

Возвращает новый BreakIterator экземпляр для разрывов строк для языкового стандарта по умолчанию Locale#getDefault().

PeerReference

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

(Унаследовано от Object)
SentenceInstance

Возвращает новый BreakIterator экземпляр для разрывов предложений для языкового стандарта по умолчанию Locale#getDefault().

Text

Возвращает объект , CharacterIterator представляющий анализируемый текст.

ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

WordInstance

Возвращает новый BreakIterator экземпляр для разбиения слов для языкового стандарта по умолчанию Locale#getDefault().

Методы

Clone()

Создание копии этого итератора

Current()

Возвращает символьный индекс границы текста, которая была возвращена методом next(), next(int), previous(), first(), last(), following(int) или previous(int).

Dispose()

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

(Унаследовано от Object)
Dispose(Boolean)

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

(Унаследовано от Object)
Equals(Object)

Указывает, равен ли какой-то другой объект этому объекту.

(Унаследовано от Object)
First()

Возвращает первую границу.

Following(Int32)

Возвращает первую границу после указанного смещения символов.

GetAvailableLocales()

Возвращает массив всех языковых стандартов, для которых get*Instance методы этого класса могут возвращать локализованные экземпляры.

GetCharacterInstance(Locale)

Возвращает новый BreakIterator экземпляр для разрывов символов для заданного языкового стандарта.

GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
GetLineInstance(Locale)

Возвращает новый BreakIterator экземпляр для разрывов строк для заданного языкового стандарта.

GetSentenceInstance(Locale)

Возвращает новый BreakIterator экземпляр для разрывов предложений для заданного языкового стандарта.

GetWordInstance(Locale)

Возвращает новый BreakIterator экземпляр для разбиения слов для заданного языкового стандарта.

IsBoundary(Int32)

Возвращает значение true, если указанное смещение символов является текстовой границей.

JavaFinalize()

Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект .

(Унаследовано от Object)
Last()

Возвращает последнюю границу.

Next()

Возвращает границу, следующую за текущей границей.

Next(Int32)

Возвращает n-ю границу из текущей границы.

Notify()

Пробуждение одного потока, ожидающего на мониторе этого объекта.

(Унаследовано от Object)
NotifyAll()

Активирует все потоки, ожидающие на мониторе этого объекта.

(Унаследовано от Object)
Preceding(Int32)

Возвращает последнюю границу, предшествующую указанному смещению символов.

Previous()

Возвращает границу, предшествующую текущей границе.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetText(String)

Задайте новую текстовую строку для сканирования.

ToArray<T>()

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

(Унаследовано от Object)
Wait()

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления/><em> или <прерывания></em>.

(Унаследовано от Object)
Wait(Int64)

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

IJavaPeerable.Disposed()

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенное средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

GetJniTypeName(IJavaPeerable)

Класс BreakIterator реализует методы для поиска расположения границ в тексте.

Применяется к