Language

BreakIterator クラス

定義

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

[Android.Runtime.Register("android/icu/text/BreakIterator", ApiSince=24, DoNotGenerateAcw=true)]
public abstract class BreakIterator : Java.Lang.Object, IDisposable, Java.Lang.ICloneable
[<Android.Runtime.Register("android/icu/text/BreakIterator", ApiSince=24, DoNotGenerateAcw=true)>]
type BreakIterator = class
    inherit Object
    interface ICloneable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
継承
BreakIterator
属性
実装

注釈

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。 ICU に固有のメソッド、フィールド、およびその他の機能には、"<strong>[icu]</strong>' というラベルが付けられます。

テキスト内の境界を検索するクラス。 このクラスは、一連の条件に従って自然言語テキストの一部を分割するオブジェクトのプロトコルを定義します。 BreakIterator のインスタンスまたはサブクラスは、たとえば、言語または言語のグループの規則に従って、テキストの一部を単語、文、または論理文字に分割するために提供できます。

BreakIterator には、5 種類の組み込み BreakIterator が用意されています。 <ul><li>getTitleInstance() は、タイトル区切りの間の境界を見つける BreakIterator を返します。 <li>getSentenceInstance() は、文間の境界を見つける BreakIterator を返します。 これは、たとえば、3 回クリックして選択する場合に便利です。 <li>getWordInstance() は、単語間の境界を特定する BreakIterator を返します。 これは、ダブルクリック選択や「単語全体の検索」検索に役立ちます。 この種類の BreakIterator は、各法的単語の先頭と末尾に境界位置があることを確認します。 (数値も単語としてカウントされます)。空白と句読点は、実際の単語とは別に保持されます。 <li>getLineInstance() は、テキスト エディターが行を折り返すのが適している位置を見つける BreakIterator を返します。 これは単語区切りと似ていますが、同じではありません。句読点と空白は一般的に単語で保持されます (たとえば、行を空白で始める必要はありません)。一部の特殊文字では、位置を改行位置と見なしたり、位置が改行位置にならないようにしたりできます。 <li>getCharacterInstance() は、論理文字間の境界を特定する BreakIterator を返します。 Unicode エンコードの構造により、論理文字は複数の Unicode コード ポイントとして内部的に格納される場合があります。 (たとえば、ウムラウトを含む A は、別の組み合わせの umlaut 文字の後に続けて格納できますが、ユーザーはまだそれを 1 つの文字と見なします)。この反復子を使用すると、コンピューターで "文字" と見なされるテキストの単位ではなく、ユーザーが文字として考えるテキストの単位を文字として扱うさまざまなプロセス (特にテキスト エディター) を使用できます</ul> テキスト境界の位置は、Unicode 標準付属書 #29、テキスト境界、Unicode 標準付属文書 #14、改行プロパティで説明されている規則に従って見つかります。 これらは、 http://www.unicode.org/reports/tr14/ および http://www.unicode.org/reports/tr29/.

BreakIterator のインターフェイスは、"反復子" モデル (したがって名前) に従います。つまり、"現在の位置" の概念と、現在の位置を更新する first()、last()、next()、previous() などのメソッドがあります。 すべての BreakIterator では、 <ul><li>テキストの先頭と末尾は常に境界位置として扱われます。 <li>反復子の現在位置は常に境界位置です (ランダム アクセス メソッドは、指定した位置ではなく、指定した位置の前または後の最も近い境界位置に反復子 を 移動します)。 <li>DONE は、イテレーションがいつ停止したかを示すフラグとして使用されます。 DONE は、現在の位置がテキストの末尾で、ユーザーが next() を呼び出した場合、または現在の位置がテキストの先頭であり、ユーザーが previous() を呼び出した場合にのみ返されます。 <li>Break の位置には、その後に続く文字の位置で番号が付けられます。 したがって、通常の状況では、最初の文字の前の位置は 0、最初の文字の後の位置は 1、最後の文字の後の位置は 1 に文字列の長さを加えた位置になります。 <li>クライアントは反復子の位置や分析するテキストを変更できますが、動作を変更することはできません。 ユーザーが別の動作を必要としている場合は、新しい iterator.< をインスタンス化する必要があります。/ul>

BreakIterator は、CharacterIterator を介して分析するテキストにアクセスします。これにより、BreakIterator を使用して、CharacterIterator インターフェイスを提供する任意のテキストストレージ 車両内のテキストを分析できます。

<b>Note:</b> 一部の種類の BreakIterator の作成には時間がかかる場合があり、BreakIterator のインスタンスは現在システムによってキャッシュされません。 最適なパフォーマンスを得られるように、BreakIterator のインスタンスは意味のある限り維持してください。 たとえば、文書を折り返す場合は、各行に対して新しい BreakIterator を作成して破棄しないでください。 ドキュメント全体 (または折り返すテキストの任意のストレッチ) に対して 1 つの中断反復子を作成し、それを使用してテキストを折り返す処理全体を実行します。

<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>

print last 要素 <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>

指定した位置に要素を出力 <ブロッククォート>

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 を見つける>

public static int nextWordStartAfter(int pos, String text) {
                BreakIterator wb = BreakIterator.getWordInstance();
                wb.setText(text);
                int wordStart = wb.following(pos);
                for (;;) {
                    int wordLimit = wb.next();
                    if (wordLimit == BreakIterator.DONE) {
                        return BreakIterator.DONE;
                    }
                    int wordStatus = wb.getRuleStatus();
                    if (wordStatus != BreakIterator.WORD_NONE) {
                        return wordStart;
                    }
                    wordStart = wordLimit;
                 }
            }

#getWordInstanceによって返される反復子は、返される中断位置が反復処理対象の開始位置と終了位置の両方を表さないという点で一意です。 つまり、文区切り反復子は、それぞれが 1 つの文の終わりと次の文の先頭を表す区切りを返します。 単語区切り反復子では、2 つの境界の間の文字が単語であるか、2 つの単語間の句読点または空白である可能性があります。 上記のコードでは、 #getRuleStatus を使用して、句読点またはその他の単語以外の文字に関連付けられている境界を識別して無視します。 </blockquote>

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
BreakIterator()

既定のコンストラクター

BreakIterator(IntPtr, JniHandleOwnership)

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

フィールド

名前 説明
Done

すべての有効な境界が返された後、previous() と next() によって DONE が返されます。

KindCharacter
古い.

<strong>[icu]</strong>

KindLine
古い.

<strong>[icu]</strong>

KindSentence
古い.

<strong>[icu]</strong>

KindTitle

<strong>[icu]</strong>

KindWord
古い.

<strong>[icu]</strong>

WordIdeo
古い.

表意文字を含む単語のタグ値、下限

WordIdeoLimit
古い.

表意文字を含む単語のタグ値、上限

WordKana
古い.

かな文字を含む単語のタグ値、下限

WordKanaLimit
古い.

かな文字を含む単語のタグ値、上限

WordLetter
古い.

文字を含む単語のタグ値 (ひらがな、カタカナ、または表意文字を除く)、下限。

WordLetterLimit
古い.

文字、上限を含む単語のタグ値

WordNone
古い.

他のどのカテゴリにも適合しない "words" のタグ値。

WordNoneLimit
古い.

分類されていない単語のタグの上限。

WordNumber
古い.

数値、下限と見なされる単語のタグ値。

WordNumberLimit
古い.

数値と見なされる単語のタグ値、上限。

プロパティ

名前 説明
CharacterInstance

論理文字の境界を見つける BreakIterator の新しいインスタンスを返します。

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

(継承元 JavaObject)
JniPeerMembers

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

LineInstance

法的な折り返し位置を検索する BreakIterator の新しいインスタンスを返します。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
RuleStatus

RuleBasedBreakIterators の場合は、現在の反復位置で境界を決定した中断ルールから状態タグを返します。

SentenceInstance

文の境界を見つける BreakIterator の新しいインスタンスを返します。

Text

分析対象のテキストに対して CharacterIterator を返します。

ThresholdClass

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

ThresholdType

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

TitleInstance

<strong>[icu]</strong> タイトルの境界を見つける BreakIterator の新しいインスタンスを返します。

WordInstance

単語の境界を検索する BreakIterator の新しいインスタンスを返します。

メソッド

名前 説明
Clone()

Clone メソッド。

Construct(JniObjectReference, JniObjectReferenceOptions)

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

(継承元 JavaObject)
Current()

反復子の現在位置を返します。

Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

(継承元 JavaObject)
Equals(Object)

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
First()

反復子を最初の境界位置に設定します。

Following(Int32)

反復子の現在の反復位置を、指定した位置に続く最初の境界位置に設定します。

GetAvailableLocales()

BreakIterator を使用できるロケールの一覧を返します。

GetCharacterInstance(Locale)

論理文字の境界を見つける BreakIterator の新しいインスタンスを返します。

GetCharacterInstance(ULocale)

<strong>[icu]</strong> 論理文字の境界を見つける BreakIterator の新しいインスタンスを返します。

GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
GetLineInstance(Locale)

法的な折り返し位置を検索する BreakIterator の新しいインスタンスを返します。

GetLineInstance(ULocale)

<strong>[icu]</strong> 法的な折り返し位置を検索する BreakIterator の新しいインスタンスを返します。

GetRuleStatusVec(Int32[])

RuleBasedBreakIterators の場合は、現在の反復位置で境界を決定した中断ルールから状態 (タグ) 値を取得します。

GetSentenceInstance(Locale)

文の境界を見つける BreakIterator の新しいインスタンスを返します。

GetSentenceInstance(ULocale)

<strong>[icu]</strong> 文の境界を見つける BreakIterator の新しいインスタンスを返します。

GetTitleInstance(Locale)

<strong>[icu]</strong> タイトルの境界を見つける BreakIterator の新しいインスタンスを返します。

GetTitleInstance(ULocale)

<strong>[icu]</strong> タイトルの境界を見つける BreakIterator の新しいインスタンスを返します。

GetWordInstance(Locale)

単語の境界を検索する BreakIterator の新しいインスタンスを返します。

GetWordInstance(ULocale)

<strong>[icu]</strong> 単語の境界を検索する BreakIterator の新しいインスタンスを返します。

IsBoundary(Int32)

指定した位置が境界位置の場合は true を返します。

JavaFinalize()
古い.

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Last()

反復子を最後の境界位置に設定します。

Next()

反復子を 1 つの境界の前に進めます。

Next(Int32)

テキスト内の指定したステップ数だけ反復子を移動します。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
Preceding(Int32)

反復子の現在の反復位置を、指定した位置の前の最後の境界位置に設定します。

Previous()

反復子を 1 つの境界の後方に移動します。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

(継承元 JavaObject)
SetText(ICharSequence)

新しいテキストを分析する反復子を設定します。

SetText(String)

新しいテキストを分析する反復子を設定します。

ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

(継承元 JavaObject)
IJavaPeerable.Finalized()

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

(継承元 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

<strong>[icu enhancement]</strong> ICU の java.text.BreakIterator の置き換え。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象