双方向オブジェクトは、テキストの作成に使用された双方向の並べ替えの情報を提供します。 これは、アラビア語やヘブライ語のテキストの適切な表示などに必要です。 これらの言語は、数字は左から右へ並び、その他のテキストのほとんどが右から左へ並ぶというように、方向が混在しています。
双方向オブジェクトが生成されると、そのテキストがすべて左から右か、またはすべて右から左かについて照会することができます。 このようなオブジェクトはたいへん軽量で、このテキストは処理が比較的容易です。
テキストのランが複数ある場合、開始、リミット、およびランのレベルを取得するインデックスによって、ランの情報にアクセスできます。 レベルは方向とラン方向の「入れ子のレベル」の両方を表します。 奇数のレベルは右から左、偶数のレベルは左から右です。 したがって、たとえば、レベル0は左から右のテキスト、レベル1は右から左のテキスト、レベル2は右から左のランに埋め込まれた左から右のテキストを表します。
- 導入されたバージョン:
- 1.4
-
フィールドのサマリー
修飾子と型フィールド説明static final int
基準方向が、Unicode双方向アルゴリズムに準拠した、テキスト内の最初の強い方向文字に依存することを示す定数です。static final int
基準方向が、Unicode双方向アルゴリズムに準拠した、テキスト内の最初の強い方向文字に依存することを示す定数です。static final int
基準方向が左から右であることを示す定数です。static final int
基準方向が右から左であることを示す定数です。 -
コンストラクタのサマリー
コンストラクタ説明Bidi
(char[] text, int textStart, byte[] embeddings, int embStart, int paragraphLength, int flags) 指定されたテキスト、埋め込み、および方向情報から双方向を生成します。指定したテキストの段落と基準方向から双方向を生成します。Bidi
(AttributedCharacterIterator paragraph) 指定したテキストの段落から双方向を生成します。 -
メソッドのサマリー
修飾子と型メソッド説明boolean
基準方向が左から右の場合はtrueを返します。createLineBidi
(int lineStart, int lineLimit) 現在の双方向によって表される段落内のテキスト行の双方向情報を表す双方向オブジェクトを生成します。int
基準レベルを返します(左から右の場合は0、右から左の場合は1)。int
行のテキストの長さを返します。int
getLevelAt
(int offset) オフセットにある文字の解決されたレベルを返します。int
実行するレベル数を返します。int
getRunLevel
(int run) この行のn番目の論理ランのレベルを返します。int
getRunLimit
(int run) この行内でn番目の論理ランの終了位置の次にある文字のインデックスを、行の開始位置からのオフセットとして返します。int
getRunStart
(int run) この行内でn番目の論理ランの開始位置にある文字のインデックスを、行の開始位置からのオフセットとして返します。boolean
行がすべて左から右のテキストであり、基準方向が左から右の場合はtrueを返します。boolean
isMixed()
行が左から右、または右から左でない場合はtrueを返します。boolean
行がすべて右から左のテキストであり、基準方向が右から左の場合はtrueを返します。static void
reorderVisually
(byte[] levels, int levelStart, Object[] objects, int objectStart, int count) 配列内のオブジェクトを、そのレベルに基づいて視覚的順序に並べ替えます。static boolean
requiresBidi
(char[] text, int start, int limit) 指定されたテキストが双方向解析を要求する場合、trueを返します。toString()
デバッギングに使用する、双方向の内部状態を表示します。
-
フィールド詳細
-
DIRECTION_LEFT_TO_RIGHT
public static final int DIRECTION_LEFT_TO_RIGHT基準方向が左から右であることを示す定数です。- 関連項目:
-
DIRECTION_RIGHT_TO_LEFT
public static final int DIRECTION_RIGHT_TO_LEFT基準方向が右から左であることを示す定数です。- 関連項目:
-
DIRECTION_DEFAULT_LEFT_TO_RIGHT
public static final int DIRECTION_DEFAULT_LEFT_TO_RIGHT基準方向が、Unicode双方向アルゴリズムに準拠した、テキスト内の最初の強い方向文字に依存することを示す定数です。 強い方向文字がない場合、基準方向は左から右です。- 関連項目:
-
DIRECTION_DEFAULT_RIGHT_TO_LEFT
public static final int DIRECTION_DEFAULT_RIGHT_TO_LEFT基準方向が、Unicode双方向アルゴリズムに準拠した、テキスト内の最初の強い方向文字に依存することを示す定数です。 強い方向文字がない場合、基準方向は右から左です。- 関連項目:
-
-
コンストラクタの詳細
-
Bidi
public Bidi(String paragraph, int flags) 指定したテキストの段落と基準方向から双方向を生成します。- パラメータ:
paragraph
- テキストの段落flags
- アルゴリズムを制御するフラグのコレクション。 アルゴリズムはフラグDIRECTION_LEFT_TO_RIGHT、DIRECTION_RIGHT_TO_LEFT、DIRECTION_DEFAULT_LEFT_TO_RIGHT、およびDIRECTION_DEFAULT_RIGHT_TO_LEFTを認識する。 その他の値は予約済み。
-
Bidi
public Bidi(AttributedCharacterIterator paragraph) 指定したテキストの段落から双方向を生成します。テキスト内にRUN_DIRECTION属性がある場合は、この属性により基準方向(左から右、右から左)が決まります。 ない場合は、基準方向はUnicode双方向アルゴリズムを使用して計算されます。テキスト内に強い方向文字がない場合、左から右がデフォルトです。 この属性がある場合は、段落内のすべてのテキストに必ず適用されます。
テキスト内にBIDI_EMBEDDING属性がある場合は、埋込みレベル情報を表します。 -1から -62の負の値は、レベルの絶対値でのオーバーライドを示します。 1から62の正の値は、埋込みを示します。 値がゼロまたは定義されない場合は、基準方向によって決まる基準埋込みレベルであると見なされます。
テキスト内にNUMERIC_SHAPING属性がある場合、この属性は双方向アルゴリズムの実行前に、ヨーロッパ数字をほかの10進数に変換します。 この属性がある場合は、段落内のすべてのテキストに必ず適用されます。
- パラメータ:
paragraph
- 任意の文字と段落属性情報を持つテキストの段落- 関連項目:
-
Bidi
public Bidi(char[] text, int textStart, byte[] embeddings, int embStart, int paragraphLength, int flags) 指定されたテキスト、埋め込み、および方向情報から双方向を生成します。 埋込み配列はnullです。 値がある場合は、埋込みレベル情報を表します。 -1 - -61の負の値は、レベルの絶対値でのオーバーライドを示します。 1 - 61の正の値は、埋込みを示します。 値がゼロの場合は、基準方向によって決まる基準埋込みレベルであると見なされます。- パラメータ:
text
- 処理するテキストの段落が格納されている配列。textStart
- 段落の開始のテキスト配列に対するインデックス。embeddings
- 段落の各文字の埋込み値が格納されている配列。 これがnullの場合は、外部埋込み情報がないものと見なされる。embStart
- 段落の先頭の埋込み配列に対するインデックス。paragraphLength
- テキストおよび埋込み配列内の段落の長さ。flags
- アルゴリズムを制御するフラグのコレクション。 アルゴリズムはフラグDIRECTION_LEFT_TO_RIGHT、DIRECTION_RIGHT_TO_LEFT、DIRECTION_DEFAULT_LEFT_TO_RIGHT、およびDIRECTION_DEFAULT_RIGHT_TO_LEFTを認識する。 その他の値は予約済み。
-
-
メソッドの詳細
-
createLineBidi
public Bidi createLineBidi(int lineStart, int lineLimit) 現在の双方向によって表される段落内のテキスト行の双方向情報を表す双方向オブジェクトを生成します。 この呼出しは、段落全体が1行の場合は要求されません。- パラメータ:
lineStart
- 段落の開始から行の開始のオフセット。lineLimit
- 段落の開始から行のリミットのオフセット。- 戻り値:
Bidi
オブジェクト
-
isMixed
public boolean isMixed()行が左から右、または右から左でない場合はtrueを返します。 この場合、左から右と右から左のランが混在しているか、基準方向がテキストの唯一のランの方向と異なっています。- 戻り値:
- 行が左から右、または右から左の場合はtrue。
-
isLeftToRight
public boolean isLeftToRight()行がすべて左から右のテキストであり、基準方向が左から右の場合はtrueを返します。- 戻り値:
- 行がすべて左から右のテキストであり、基準方向が左から右の場合はtrue
-
isRightToLeft
public boolean isRightToLeft()行がすべて右から左のテキストであり、基準方向が右から左の場合はtrueを返します。- 戻り値:
- 行がすべて右から左のテキストであり、基準方向が右から左の場合はtrue
-
getLength
public int getLength()行のテキストの長さを返します。- 戻り値:
- 行のテキストの長さ
-
baseIsLeftToRight
public boolean baseIsLeftToRight()基準方向が左から右の場合はtrueを返します。- 戻り値:
- 基準方向が左から右の場合はtrue
-
getBaseLevel
public int getBaseLevel()基準レベルを返します(左から右の場合は0、右から左の場合は1)。- 戻り値:
- 基準レベル
-
getLevelAt
public int getLevelAt(int offset) オフセットにある文字の解決されたレベルを返します。 オフセットが負であるか行の長さ以上である場合は、基準方向レベルを返します。- パラメータ:
offset
- レベルを返す文字のインデックス- 戻り値:
- オフセットにある文字の解決されたレベル
-
getRunCount
public int getRunCount()実行するレベル数を返します。- 戻り値:
- 実行するレベル数
-
getRunLevel
public int getRunLevel(int run) この行のn番目の論理ランのレベルを返します。- パラメータ:
run
- 0とgetRunCount()
の間にある、ランのインデックス- 戻り値:
- ランのレベル
-
getRunStart
public int getRunStart(int run) この行内でn番目の論理ランの開始位置にある文字のインデックスを、行の開始位置からのオフセットとして返します。- パラメータ:
run
- 0とgetRunCount()
の間にある、ランのインデックス- 戻り値:
- ランの開始位置
-
getRunLimit
public int getRunLimit(int run) この行内でn番目の論理ランの終了位置の次にある文字のインデックスを、行の開始位置からのオフセットとして返します。 たとえば、行の最終ランのための行の長さを返します。- パラメータ:
run
- 0とgetRunCount()
の間にある、ランのインデックス- 戻り値:
- ランのリミットの制限
-
requiresBidi
public static boolean requiresBidi(char[] text, int start, int limit) 指定されたテキストが双方向解析を要求する場合、trueを返します。 falseを返した場合は、テキストは左から右に表示されます。 そのとき、クライアントは双方向オブジェクトの構築を回避できます。 Unicodeのアラビア語表示形式領域にあるテキストは、形状と順序が表示用になっていると見なされ、trueを返す原因にはなりません。- パラメータ:
text
- テスト対象の文字を含むテキストstart
- テスト対象の文字の範囲の開始位置limit
- テスト対象の文字の範囲のリミット- 戻り値:
- 文字の範囲が双方向解析を要求する場合、true
-
reorderVisually
public static void reorderVisually(byte[] levels, int levelStart, Object[] objects, int objectStart, int count) 配列内のオブジェクトを、そのレベルに基づいて視覚的順序に並べ替えます。 これはユーティリティ機能で、各ランが単一レベルでテキストを格納する、テキストのランを論理的順序で表すオブジェクトのコレクションがある場合に使用します。 オブジェクト配列内の、objectStart
からobjectStart+count
のindex
にある要素は、テキストの各ランが、レベル配列(index - objectStart+levelStart
)内の対応する要素によって示されるレベルであると見なして、視覚的順序に並べ替えられます。- パラメータ:
levels
- 各オブジェクトの双方向レベルを表す配列levelStart
- レベル配列内での開始位置objects
- 視覚的順序に並べ替えられるオブジェクトの配列objectStart
- オブジェクト配列内での開始位置count
- 並べ替え対象のオブジェクト数
-
toString
public String toString()デバッギングに使用する、双方向の内部状態を表示します。
-