public final class Bidi extends Object
Bidi对象提供有关用于创建它的文本的双向重新排序的信息。 这是必需的,例如,正确显示阿拉伯语或希伯来语文本。 这些语言本质上是混合的方式,因为它们从左到右订购数字,而从右到左排序大多数其他文本。
一旦创建,可以查询一个Bidi对象,看看它代表的文本是从左到右还是从右到左。 这样的对象非常轻巧,这个文本比较容易处理。
如果有多个文本运行,则可以通过索引访问有关运行的信息,以获取运行的开始,限制和级别。 该级别表示方向运行的方向和“嵌套级别”。 奇数级别是从右到左,而平均级别是从左到右。 因此,例如级别0表示从左到右的文本,而级别1表示从右到左的文本,级别2表示嵌入在从右到左的运行中的从左到右的文本。
| Modifier and Type | Field and Description | 
|---|---|
| static int | DIRECTION_DEFAULT_LEFT_TO_RIGHT
              常数表示基本方向取决于文本中根据Unicode双向算法的第一个强定向字符。 
             | 
| static int | DIRECTION_DEFAULT_RIGHT_TO_LEFT
              常数表示基本方向取决于文本中根据Unicode双向算法的第一个强定向字符。 
             | 
| static int | DIRECTION_LEFT_TO_RIGHT
              常数表示基地方向是从左到右。 
             | 
| static int | DIRECTION_RIGHT_TO_LEFT
              恒定指示基准方向是从右到左。 
             | 
| Constructor and Description | 
|---|
| Bidi(AttributedCharacterIterator paragraph)
              从文本的给定段落创建Bidi。 
             | 
| Bidi(char[] text, int textStart, byte[] embeddings, int embStart, int paragraphLength, int flags)
              从给定的文本,嵌入和方向信息创建Bidi。 
             | 
| Bidi(String paragraph, int flags)
              从文本和基本方向的给定段落创建Bidi。 
             | 
| Modifier and Type | Method and Description | 
|---|---|
| boolean | baseIsLeftToRight()
              如果基本方向是从左到右,则返回true。 
             | 
| Bidi | createLineBidi(int lineStart, int lineLimit)
              创建一个Bidi对象,该对象表示由当前Bidi表示的段落内的一行文本上的双向信息。 
             | 
| int | getBaseLevel()
              返回基本级别(如果从左到右为0,如果从右到左,则返回1)。 
             | 
| int | getLength()
              返回行中的文本长度。 
             | 
| int | getLevelAt(int offset)
              返回已解决的偏移角色级别。 
             | 
| int | getRunCount()
              返回级别运行次数。 
             | 
| int | getRunLevel(int run)
              返回此行中第n个逻辑运行的级别。 
             | 
| int | getRunLimit(int run)
              返回该行的第n个逻辑运行结束之后的索引,作为与行开头的偏移量。 
             | 
| int | getRunStart(int run)
              返回此行中第n个逻辑运行开始处的字符索引,作为与行开头的偏移量。 
             | 
| boolean | isLeftToRight()
              如果行是从左到右的文本,并且基本方向是从左到右,返回true。 
             | 
| boolean | isMixed()
              如果行不是从左到右还是从右到左,返回true。 
             | 
| boolean | isRightToLeft()
              如果行是从右到左文本,并且基本方向是从右到左,返回true。 
             | 
| static void | reorderVisually(byte[] levels, int levelStart, Object[] objects, int objectStart, int count)
              将数组中的对象根据其级别重新排序为可视化顺序。 
             | 
| static boolean | requiresBidi(char[] text, int start, int limit)
              如果指定的文本需要双向分析,则返回true。 
             | 
| String | toString()
              显示调试中使用的双向内部状态。 
             | 
public static final int DIRECTION_LEFT_TO_RIGHT
public static final int DIRECTION_RIGHT_TO_LEFT
public static final int DIRECTION_DEFAULT_LEFT_TO_RIGHT
public static final int DIRECTION_DEFAULT_RIGHT_TO_LEFT
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。 
            其他值被保留。 
           public Bidi(AttributedCharacterIterator paragraph)
文本中的RUN_DIRECTION属性(如果存在)确定基本方向(从左到右或从右到左)。 如果不存在,则使用Unicode双向算法计算基本方向,如果文本中没有强有力的方向性字符,则默认为从左到右。 该属性(如果存在)必须应用于段落中的所有文本。
文本中的BIDI_EMBEDDING属性(如果存在)表示嵌入级别信息。 -1到-62的负值表示在级别的绝对值上的覆盖。 1到62的正值表示嵌入。 在值为零或未定义的情况下,假定由基准方向确定的基本嵌入级别。
文本中的NUMERIC_SHAPING属性(如果存在)在运行bidi算法之前将欧洲数字转换为其他十进制数字。 该属性(如果存在)必须应用于段落中的所有文本。
paragraph - 具有可选字符和段落属性信息的文本段落 
           TextAttribute.BIDI_EMBEDDING , 
            TextAttribute.NUMERIC_SHAPING , 
            TextAttribute.RUN_DIRECTION 
           public Bidi(char[] text,
            int textStart,
            byte[] embeddings,
            int embStart,
            int paragraphLength,
            int flags) 
          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。 
            其他值被保留。 
           public Bidi createLineBidi(int lineStart, int lineLimit)
lineStart - 从段落开始到行开始的偏移量。 
           lineLimit - 从段落开始到行限制的偏移量。 
           Bidi对象 
           public boolean isMixed()
public boolean isLeftToRight()
public boolean isRightToLeft()
public int getLength()
public boolean baseIsLeftToRight()
public int getBaseLevel()
public int getLevelAt(int offset)
offset - 返回级别的字符的索引 
           public int getRunCount()
public int getRunLevel(int run)
run - 运行的索引,介于0和 
            getRunCount()之间 
           public int getRunStart(int run)
run - 运行的索引,介于0和 
            getRunCount()之间 
           public int getRunLimit(int run)
run - 运行的索引,介于0和 
            getRunCount()之间 
           public static boolean requiresBidi(char[] text,
                                   int start,
                                   int limit) 
          text - 包含要测试的字符的文本 
           start - 要测试的字符范围的开始 
           limit - 要测试的字符范围的限制 
           public static void reorderVisually(byte[] levels,
                                   int levelStart,
                                   Object[] objects,
                                   int objectStart,
                                   int count) 
          index从objectStart到objectStart + count的对象阵列中会被重新排序成可视顺序假定文本中的每个运行具有:(在由所述水平阵列中的相应的元素所指示的电平index - objectStart + levelStart )。 
          levels - 表示每个对象的双向数据级别的数组 
           levelStart - 级别数组中的起始位置 
           objects - 要重新排序为可视化顺序的对象数组 
           objectStart - 对象数组中的起始位置 
           count - 要重新排序的对象数 
            Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.