言語

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のインスタンスは現在の位置を維持し、境界が発生した文字のインデックスを返すテキストをスキャンします。 内部的には、 BreakIteratorCharacterIteratorを使用してテキストをスキャンするため、そのプロトコルを実装する任意のオブジェクトによって保持されているテキストをスキャンできます。 StringCharacterIteratorは、Stringに渡setTextオブジェクトをスキャンするために使用されます。 CharacterIterator オブジェクトは、setTextに渡された後で変更することはできません。 CharacterIterator オブジェクト内のテキストが変更された場合、呼び出し元はBreakIteratorを呼び出してsetTextをリセットする必要があります。

このクラスによって提供されるファクトリ メソッドを使用して、さまざまな種類の中断反復子のインスタンスを作成します。 特に、 getWordInstancegetLineInstancegetSentenceInstance、および getCharacterInstance を使用して、単語、行、文、文字の境界分析をそれぞれ実行する BreakIteratorを作成します。 1 つの BreakIterator は、1 つの単位 (単語、行、文など) でのみ機能します。 実行する単位境界分析ごとに異なる反復子を使用する必要があります。

"line"> 行の境界分析は、折り返し時にテキスト文字列を分割できる場所を決定します。 このメカニズムは、句読点とハイフンで区切られた単語を正しく処理します。 実際の改行では、使用可能な線の幅も考慮する必要があり、上位レベルのソフトウェアによって処理されます。

"sentence"> 文の境界分析では、数値と省略形内のピリオドと、引用符やかっこなどの末尾の句読点を正しく解釈して選択できます。

"word"> Word境界分析は、検索と置換の機能だけでなく、ユーザーがダブルクリックで単語を選択できるようにするテキスト編集アプリケーション内で使用されます。 Word選択すると、単語内および次の単語内の句読点が正しく解釈されます。 単語の一部ではない文字 (記号や句読点など) は、両側に単語区切りがあります。

"character"> 文字境界分析を使用すると、ユーザーは、テキスト文字列を介してカーソルを移動する場合など、期待どおりに文字を操作できます。 文字境界分析では、文字の格納方法に関係なく、文字列を正しく移動できます。 返される境界は、補助文字、文字シーケンスの組み合わせ、または合字クラスターの境界です。 たとえば、アクセント記号付き文字は、基本文字と分音記号として格納される場合があります。 ユーザーが文字と見なす内容は、言語によって異なる場合があります。

このクラスのファクトリ メソッドによって返される 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>

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>

指定した位置に要素を出力します: <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() によって返される反復子は、返される中断位置が反復処理対象の開始位置と終了位置の両方を表さないという点で一意です。 つまり、文区切り反復子は、それぞれが 1 つの文の終わりと次の文の先頭を表す区切りを返します。 単語区切り反復子では、2 つの境界の間の文字が単語であるか、2 つの単語間の句読点または空白である可能性があります。 上記のコードでは、単純なヒューリスティックを使用して、単語の先頭となる境界を決定します。この境界と次の境界の間の文字に少なくとも 1 文字 (アルファベット、CJK イデオグラフ、ハングル音節、かな文字など) が含まれている場合、この境界と次の境界の間のテキストは単語です。それ以外の場合は、単語間の素材になります)。 </blockquote>

1.1 で追加されました。

Javaドキュメント。

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

コンストラクター

名前 説明
BreakIterator()

コンストラクタ。

BreakIterator(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

フィールド

名前 説明
Done

最初または最後のテキスト境界に達すると、DONE は previous()、next()、next(int)、preceding(int)、および following(int) によって返されます。

プロパティ

名前 説明
CharacterInstance

Locale#getDefault() の既定のロケールの文字区切りの新しい BreakIterator インスタンスを返します。

Class

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

(継承元 Object)
Handle

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

(継承元 Object)
JniIdentityHashCode

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

(継承元 Object)
JniManagedPeerState

BreakIterator クラスは、テキスト内の境界の位置を見つけるためのメソッドを実装します。

(継承元 JavaObject)
JniPeerMembers

BreakIterator クラスは、テキスト内の境界の位置を見つけるためのメソッドを実装します。

LineInstance

Locale#getDefault() の既定のロケールの改行の新しい BreakIterator インスタンスを返します。

PeerReference

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

(継承元 Object)
SentenceInstance

Locale#getDefault() の既定のロケールの文区切りの新しい BreakIterator インスタンスを返します。

Text

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

ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

WordInstance

Locale#getDefault() の既定のロケールの単語区切りの新しい BreakIterator インスタンスを返します。

メソッド

名前 説明
Clone()

この反復子のコピーを作成する

Construct(JniObjectReference, JniObjectReferenceOptions)

BreakIterator クラスは、テキスト内の境界の位置を見つけるためのメソッドを実装します。

(継承元 JavaObject)
Current()

next()、next(int)、previous()、first()、last()、following(int) または preceding(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()

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

(継承元 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>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()

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)

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

JavaAs<TResult>(IJavaPeerable)

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

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

BreakIterator クラスは、テキスト内の境界の位置を見つけるためのメソッドを実装します。

TryJavaCast<TResult>(IJavaPeerable, TResult)

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

適用対象