Language

Bidi.GetVisualRun(Int32) メソッド

定義

インデックスに従って BidiRun オブジェクトを取得します。

[Android.Runtime.Register("getVisualRun", "(I)Landroid/icu/text/BidiRun;", "GetGetVisualRun_IHandler", ApiSince=29)]
public virtual Android.Icu.Text.BidiRun? GetVisualRun(int runIndex);
[<Android.Runtime.Register("getVisualRun", "(I)Landroid/icu/text/BidiRun;", "GetGetVisualRun_IHandler", ApiSince=29)>]
abstract member GetVisualRun : int -> Android.Icu.Text.BidiRun
override this.GetVisualRun : int -> Android.Icu.Text.BidiRun

パラメーター

runIndex
Int32

は、 [0..countRuns()-1]範囲内の実行の数を視覚的な順序で指定します。

返品

実行の詳細を含む BidiRun オブジェクト。 実行の方向は LTR==0 または RTL==1であり、 MIXEDされません。

属性

注釈

インデックスに従って BidiRun オブジェクトを取得します。 BidiRun メソッドを使用して、実行の論理開始、長さ、およびレベルを取得できます。LTR 実行の場合でも、RTL 実行の場合は奇数でもかまいません。 RTL 実行では、論理開始位置の文字は表示される実行の右側に視覚的に表示されます。 長さは、実行の文字数です。

countRuns() は通常、実行が取得される前に呼び出されます。

例:

Bidi bidi = new Bidi();
             String text = "abc 123 DEFG xyz";
             bidi.setPara(text, Bidi.RTL, null);
             int i, count=bidi.countRuns(), logicalStart, visualIndex=0, length;
             BidiRun run;
             for (i = 0; i &lt; count; ++i) {
                 run = bidi.getVisualRun(i);
                 logicalStart = run.getStart();
                 length = run.getLength();
                 if (Bidi.LTR == run.getEmbeddingLevel()) {
                     do { // LTR
                         show_char(text.charAt(logicalStart++), visualIndex++);
                     } while (--length &gt; 0);
                 } else {
                     logicalStart += length;  // logicalLimit
                     do { // RTL
                         show_char(text.charAt(--logicalStart), visualIndex++);
                     } while (--length &gt; 0);
                 }
             }

右から左への実行では、次のようなコードは最初のサロゲートの前に2番目のサロゲートを配置し(一般的には悪い考えです)、基本文字の前に文字を組み合わせることに注意してください。

これらの問題を回避するために、必要に応じて {@link #KEEP_BASE_COMBINING} オプションで{@link #writeReordered}を使用することを検討できます。

Javaドキュメント。

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

適用対象