BreakIterator Класс

Определение

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

[Android.Runtime.Register("java/text/BreakIterator", DoNotGenerateAcw=true)]
public abstract class BreakIterator : Java.Lang.Object, IDisposable, 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 текущей позиции и сканирования текста, возвращающего индекс символов, где происходят границы. Внутренне сканирует текст с помощью BreakIteratorи, таким образом, может сканировать текст, CharacterIterator удерживаемый любым объектом, реализующим этот протокол. Используется StringCharacterIterator для сканирования String объектов, переданных setTextв . Объект CharacterIterator не должен быть изменен после того, как он setTextбыл передан. Если текст в объекте изменен, вызывающий CharacterIterator объект должен сбросить BreakIterator путем вызова setText.

Методы фабрики, предоставляемые этим классом, используются для создания экземпляров различных типов итераторов останова. В частности, используйте getWordInstance, getLineInstancegetSentenceInstanceи 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.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

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

Имя Описание
BreakIterator()

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

BreakIterator(IntPtr, JniHandleOwnership)

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

Поля

Имя Описание
Done

ГОТОВО возвращается предыдущим(), next(), next(int), ранее(int) и next(int) при достижении первой или последней границы текста.

Свойства

Имя Описание
CharacterInstance

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

Class

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

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

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

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

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

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

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

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

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

LineInstance

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

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

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

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

Text

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

ThresholdClass

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

ThresholdType

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

WordInstance

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

Методы

Имя Описание
Clone()

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

Construct(JniObjectReference, JniObjectReferenceOptions)

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

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

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

Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

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

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

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

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

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

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

(Унаследовано от JavaObject)
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)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

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

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

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

ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

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

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

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

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

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

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

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

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

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

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

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

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

Имя Описание
IJavaPeerable.Disposed()

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

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

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

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

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

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

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

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

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

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

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

(Унаследовано от JavaObject)
IJavaPeerable.UnregisterFromRuntime()

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

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

Имя Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

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

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

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