全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス

クラス java.text.BreakIterator

java.lang.Object
   |
   +----java.text.BreakIterator

public abstract class BreakIterator
extends Object
implements Cloneable, Serializable
BreakIteratorクラスは、テキストにおける境界の位置を見つけるためのメソッドを実装します。BreakIteratorのインスタンスは、現在の位置を維持し、テキスト全体をスキャンして、境界(複数)にある文字(複数)のインデックスを返します。内部的には、BreakIteratorは、CharacterIteratorを使ってテキストをスキャンするので、そのプロトコルを実装するオブジェクトであれば、どのオブジェクトによって保持されるテキストでもスキャンすることができます。setTextに渡される Stringオブジェクトのスキャンには、StringCharacterIteratorが使用されます。

さまざまなタイプのブレーク反復子のインスタンスを作成するには、このクラスのファクトリメソッドを使用します。具体的には、getWordIteratorgetLineIteratorgetSentenceIteratorgetCharacterIteratorを使って、それぞれ語、行、文、文字の境界を分析する BreakIteratorを作成します。単一の BreakIteratorは、1つの単位(語、行、文など)だけに作用します。行いたい各単位境界の分析ごとに、異なる反復子を使用する必要があります。

行境界分析は、行の折返しの際、テキスト文字列をどこで分けるかを判断するために使用します。このメカニズムによって、句読点やハイフン付きの語が正しく処理されます。

文境界分析は、数値や省略形のピリオドや、引用符やかっこなどの区切り文字を正しく解釈して文を選択します。

語境界分析は、検索と置換の機能や、ダブルクリックで語を選択できるようにするテキスト編集アプリケーションで使用されます。語の選択では、語の中の句読点や語に続く句読点が正しく解釈されます。記号や句読点など、語として認められない文字は、その両側で語のブレークが起こります。

文字境界分析を使うと、たとえば、テキスト文字列でカーソルを移動したいときなどに、文字単位で処理することができます。文字境界の分析では、その文字がどのように格納されていようとも、文字列が正規の順序で処理されます。たとえば、アクセント付きの文字は基本文字と発音区別符号として格納されることがあります。ユーザが何を1文字としてとらえるかは、言語によって異なります。

BreakIteratorは自然言語で使用するためのものです。このクラスをプログラミング言語の分析に使用することはできません。

:

テキスト境界の作成と使用

 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);
      }
 }
 
各要素を順にプリントします。
 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));
     }
 }
 
各要素を逆順にプリントします。
 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));
     }
 }
 
最初の要素をプリントします。
 public static void printFirst(BreakIterator boundary, String source) {
     int start = boundary.first();
     int end = boundary.next();
     System.out.println(source.substring(start,end));
 }
 
最後の要素をプリントします。
 public static void printLast(BreakIterator boundary, String source) {
     int end = boundary.last();
     int start = boundary.previous();
     System.out.println(source.substring(start,end));
 }
 
指定の位置にある要素をプリントします。
 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));
 }
 

参照:
CharacterIterator

Variable Index

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

Constructor Index

 o BreakIterator()
構築子です。

Method Index

 o clone()
この境界のコピーを作成します。
 o current()
next()、previous()、first()、またはlast()によって最後に返されたテキスト境界の文字インデックスを返します。
 o first()
最初の境界を返します。
 o following(int)
指定のオフセットに続く最初の境界を返します。
 o getAvailableLocales()
TextBoundariesが導入される対象のロケールセットを入手します。
 o getCharacterInstance()
デフォルトロケールを使って文字ブレークのためのBreakIteratorを作成します。文字ブレークを実装するBreakIteratorのインスタンスを返します。
 o getCharacterInstance(Locale)
指定のロケールを使って、文字ブレークのためのBreakIteratorを作成します。文字ブレークを実装するBreakIteratorのインスタンスを返します。
 o getLineInstance()
デフォルトロケールを使って、行ブレークのためのBreakIteratorを作成します。
 o getLineInstance(Locale)
指定するロケールを使って、行ブレークのためのBreakIteratorを作成します。
 o getSentenceInstance()
デフォルトロケールを使って、文ブレークのためのBreakIteratorを作成します。文ブレークを実装するBreakIteratorのインスタンスを返します。
 o getSentenceInstance(Locale)
指定するロケールを使って、行ブレークのためのBreakIteratorを作成します。文ブレークを実装するBreakIteratorのインスタンスを返します。
 o getText()
スキャンするテキストを入手します。
 o getWordInstance()
デフォルトロケールを使って、語ブレークのためのBreakIteratorを作成します。
 o getWordInstance(Locale)
指定するロケールを使って、語ブレークのためのBreakIteratorを作成します。
 o last()
最後の境界を返します。
 o next()
現在の境界の次の境界を返します。
 o next(int)
現在の境界からn番目の境界を返します。
 o previous()
現在の境界の前の境界を返します。
 o setText(CharacterIterator)
スキャンのための新しいテキストを設定します。
 o setText(String)
スキャンする新しいテキスト文字列を設定します。

Variables

 o DONE
  public static final int DONE
すべての境界が返された後、previous()とnext()によってDONEが返されます。

Constructors

 o BreakIterator
  protected BreakIterator()
構築子です。BreakIteratorには状態がないので、デフォルトの動作はありません。

Methods

 o clone
  public Object clone()
この境界のコピーを作成します。

返り値:
これのコピー
オーバーライド:
クラス Objectclone
 o first
  public abstract int first()
最初の境界を返します。この反復子の位置は、最初の境界に設定されます。

返り値:
最初のテキスト境界の文字インデックス
 o last
  public abstract int last()
最後の境界を返します。この反復子の位置は、最後の境界に設定されます。

返り値:
最後のテキスト境界の文字インデックス
 o next
  public abstract int next(int n)
現在の境界からn番目の境界を返します。

パラメータ:
n - どの境界を返すかの値。値0は何もしません。負の値は前方の境界へ、正の値は後方の境界へ移動します。
返り値:
現在の境界からn番目の境界のインデックス。
 o next
  public abstract int next()
現在の境界に続く境界を返します。

返り値:
次のテキスト境界の文字インデックス、またはすべての境界が返されていればDONEが返されます。next(1)と同じ。
 o previous
  public abstract int previous()
現在の境界の前の境界を返します。

返り値:
前のテキスト境界の文字インデックス、またはすべての境界が返されていればDONEが返されます。
 o following
  public abstract int following(int offset)
指定のオフセットに続く最初の境界を返します。返される値は、そのオフセットまたは値BreakIterator.DONEよりも常に大きな値です。

パラメータ:
offset - スキャンを開始するオフセット。値が有効かどうかは、setText()に渡されるCharacterIteratorによって判断されます。値が無効だと、IllegalArgumentExceptionがスローされます。
返り値:
指定のオフセットより後にある最初の境界
 o current
  public abstract int current()
next()、previous()、first()、またはlast()によって最後に返されたテキスト境界の文字インデックスを返します。

返り値:
最後に返された境界
 o getText
  public abstract CharacterIterator getText()
スキャンするテキストを入手します。

返り値:
スキャンするテキスト
 o setText
  public void setText(String newText)
スキャンする新しいテキスト文字列を設定します。現在のスキャン位置はfirst()にリセットされます。

パラメータ:
newText - スキャンする新しいテキスト
 o setText
  public abstract void setText(CharacterIterator newText)
スキャンする新しいテキストを設定します。現在のスキャン位置はfirst()にリセットされます。

パラメータ:
newText - スキャンする新しいテキスト
 o getWordInstance
  public static BreakIterator getWordInstance()
デフォルトロケールを使って、語ブレークのためのBreakIteratorを作成します。語ブレークを実装するBreakIteratorのインスタンスを返します。WordBreakは語選択(たとえば、ダブルクリック)のときに便利です。

返り値:
語ブレークのためのBreakIterator
参照:
getDefault
 o getWordInstance
  public static BreakIterator getWordInstance(Locale where)
指定のロケールを使って、ブレークのためのBreakIteratorを作成します。語ブレークを実装するBreakIteratorのインスタンスを返します。WordBreakは語選択(たとえば、ダブルクリック)のときに便利です。

パラメータ:
where - そのロケール。指定のロケールに対し特定のWordBreakがなければ、デフォルトのWordBreakが返されます。
返り値:
語ブレークの BreakIterator
 o getLineInstance
  public static BreakIterator getLineInstance()
デフォルトロケールを使って、行ブレークのためのBreakIteratorを作成します。行ブレークを実装するBreakIteratorのインスタンスを返します。行ブレークは、論理的に可能な行グレークのことです。実際の行ブレークは通常、ディスプレイの幅によって決まります。LineBreakは語の折返しが必要なテキストのときに使用します。

返り値:
行ブレークのためのBreakIterator
参照:
getDefault
 o getLineInstance
  public static BreakIterator getLineInstance(Locale where)
指定のロケールを使って、行ブレークのためのBreakIteratorを作成します。行ブレークを実装するBreakIteratorのインスタンスを返します。行ブレークは、論理的に可能な行グレークのことです。実際の行ブレークは通常、ディスプレイの幅によって決まります。LineBreakは語の折返しが必要なテキストのときに使用します。

パラメータ:
where - そのロケール。指定のロケールに対し特定のLineBreakがなければ、デフォルトのLineBreakが返されます。
返り値:
行ブレークのためのBreakIterator
 o getCharacterInstance
  public static BreakIterator getCharacterInstance()
デフォルトロケールを使って、文字ブレークのためのBreakIteratorを作成します。文字ブレークを実装するBreakIteratorのインスタンスを返します。文字ブレークは、文字シーケンスを結合するブレークのことです。

返り値:
文字ブレークのためのBreakIterator
参照:
getDefault
 o getCharacterInstance
  public static BreakIterator getCharacterInstance(Locale where)
指定のロケールを使って、文字ブレークのためのBreakIteratorを作成します。文字ブレークを実装するBreakIteratorのインスタンスを返します。文字ブレークは、文字シーケンスを結合するブレークのことです。

パラメータ:
where - そのロケール。指定のロケールに対し特定の文字ブレークがなければ、デフォルトの文字ブレークが返されます。
返り値:
文字ブレークのためのBreakIterator
 o getSentenceInstance
  public static BreakIterator getSentenceInstance()
デフォルトロケールを使って、文ブレークのためのBreakIteratorを作成します。文ブレークを実装するBreakIteratorのインスタンスを返します。

返り値:
文ブレークのためのBreakIterator
参照:
getDefault
 o getSentenceInstance
  public static BreakIterator getSentenceInstance(Locale where)
指定のロケールを使って、文ブレークのためのBreakIteratorを作成します。文ブレークを実装するBreakIteratorのインスタンスを返します。

パラメータ:
where - そのロケール。指定のロケールに対し特定のSentenceBreakがなければ、デフォルトのSentenceBreakブレークが返されます。
返り値:
ブレークのためのBreakIterator
 o getAvailableLocales
  public static synchronized Locale[] getAvailableLocales()
TextBoundariesが導入される対象のロケールセットを入手します。

返り値:
使用可能なロケール

全パッケージ  クラス階層  このパッケージ  前項目  次項目  インデックス