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

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

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

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

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

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

このクラスのファクトリ メソッドによって返されるインスタンスは BreakIterator 、プログラミング言語テキストではなく、自然言語でのみ使用することを目的としています。 ただし、プログラミング言語をトークン化するサブクラスを定義することは可能です。

<strong>Examples</strong>:

テキスト境界の作成と使用: <ブロッククォート>

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

1.1 で追加されました。

の Java ドキュメント java.text.BreakIterator

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

コンストラクター

BreakIterator()

コンストラクターです。

BreakIterator(IntPtr, JniHandleOwnership)

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

フィールド

Done

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

プロパティ

CharacterInstance

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

Class

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

(継承元 Object)
Handle

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

(継承元 Object)
JniIdentityHashCode

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

(継承元 Object)
JniPeerMembers

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

LineInstance

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

PeerReference

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

(継承元 Object)
SentenceInstance

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

Text

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

ThresholdClass

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

ThresholdType

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

WordInstance

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

メソッド

Clone()

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

Current()

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

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

(継承元 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>割り込み</em によって待機します>。

(継承元 Object)
Wait(Int64)

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

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

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< 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 、テキスト内の境界の位置を検索するためのメソッドを実装します。

適用対象