BreakIterator クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
クラスは 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
スキャンするため、そのプロトコルを実装する任意のオブジェクトによって保持されているテキストをスキャンできます。 StringCharacterIterator
に渡されたオブジェクトをスキャンString
するために、 が使用されますsetText
。 CharacterIterator
に渡されたsetText
後、オブジェクトを変更することはできません。 オブジェクト内のテキストがCharacterIterator
変更された場合、呼び出し元は を呼び出setText
してリセットBreakIterator
する必要があります。
このクラスによって提供されるファクトリ メソッドを使用して、さまざまな種類の中断反復子のインスタンスを作成します。 特に、単語、行、文、文字getCharacterInstance
境界の分析をそれぞれ実行する を作成BreakIterator
するには、 を使用getWordInstance
getLineInstance
getSentenceInstance
します。 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() の既定のロケールの文字区切りの新しい |
Class |
この |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
JniIdentityHashCode |
クラスは |
JniPeerMembers |
クラスは |
LineInstance |
Locale#getDefault() の既定のロケールの改行の新しい |
PeerReference |
クラスは |
SentenceInstance |
Locale#getDefault() の既定のロケールの文区切りの新しい |
Text |
分析対象の |
ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
WordInstance |
Locale#getDefault() の既定のロケールの単語区切りの新しい |
メソッド
Clone() |
この反復子のコピーを作成する |
Current() |
next()、next(int)、previous()、first()、last()、following(int) または preceding(int) によって最後に返されたテキスト境界の文字インデックスを返します。 |
Dispose() |
クラスは |
Dispose(Boolean) |
クラスは |
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
First() |
最初の境界を返します。 |
Following(Int32) |
指定した文字オフセットに続く最初の境界を返します。 |
GetAvailableLocales() |
このクラスのメソッドがローカライズされたインスタンスを |
GetCharacterInstance(Locale) |
指定されたロケールの文字区切りの新しい |
GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
GetLineInstance(Locale) |
指定されたロケールの改行の新しい |
GetSentenceInstance(Locale) |
指定されたロケールの文区切りの新しい |
GetWordInstance(Locale) |
指定されたロケールの単語区切りの新しい |
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>() |
クラスは |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
UnregisterFromRuntime() |
クラスは |
Wait() |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
IJavaPeerable.Disposed() |
クラスは |
IJavaPeerable.DisposeUnlessReferenced() |
クラスは |
IJavaPeerable.Finalized() |
クラスは |
IJavaPeerable.JniManagedPeerState |
クラスは |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
クラスは |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
クラスは |
IJavaPeerable.SetPeerReference(JniObjectReference) |
クラスは |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
クラスは |
GetJniTypeName(IJavaPeerable) |
クラスは |