所有类


java.text
类 Bidi

java.lang.Object
  继承者 java.text.Bidi

public final class Bidi
   
   
   
   
   
extends Object

此类实现了 Unicode 双向算法 (Unicode Bidirectional Algorithm)。

Bidi 对象提供了有关用于创建它的文本的双向重排序的信息。例如,这对于正确显示阿拉伯语或者希伯来语文本来说是必需的。这些语言本来是混合方向的,因为其从左向右排列数字,而大多数其他文本则从右向左排列。

一旦创建完成,Bidi 对象就能查询,以查看文本表示都是从左向右或从右向左。这些对象都是非常轻量级的并且此文本也相对容易处理。

如果有多次文本的运行,则可以通过索引访问运行的信息,以获得起始位置、限制和运行层次。层次代表了方向和一个方向运行的“嵌套层次”。奇数层次是从右到左,则偶数层次是从左到右。因此,例如层次 0 代表从左到右的文本,而层次 1 代表从右到左的文本,层次 2 代表嵌入在一个从右到左的运行中的从左到右的文本。

从以下版本开始:
1.4

字段摘要
static intDIRECTION_DEFAULT_LEFT_TO_RIGHT
          表示基本方向依赖于根据 Unicode 双向算法得到的文本中第一个强方向字符的常量。
static intDIRECTION_DEFAULT_RIGHT_TO_LEFT
          表示基本方向依赖于根据 Unicode 双向算法得到的文本中第一个强方向字符的常量。
static intDIRECTION_LEFT_TO_RIGHT
          表示基本方向是从左到右的常量。
static intDIRECTION_RIGHT_TO_LEFT
          表示基本方向是从右到左的常量。
 
构造方法摘要
Bidi(AttributedCharacterIterator paragraph)
          由给定的文本段构造 Bidi。
Bidi(char[] text, int textStart, byte[] embeddings, int embStart, int paragraphLength, int flags)
          由给定的文本、嵌入和方向信息构造 Bidi。
Bidi(String paragraph, int flags)
          由给定的文本段和基本方向构造 Bidi。
 
方法摘要
 booleanbaseIsLeftToRight()
          如果基本方向是从左到右,则返回 true。
 BidicreateLineBidi(int lineStart, int lineLimit)
          构造一个 Bidi 对象,表示当前 Bidi 所代表的段落中的一行文本上的双向信息。
 intgetBaseLevel()
          返回基本层次(如果是从左到右,则为 0;如果是从右到左,则为 1)。
 intgetLength()
          返回该行中文本的长度。
 intgetLevelAt(int offset)
          返回偏移位置处的字符的解析层次。
 intgetRunCount()
          返回层次运行的数目。
 intgetRunLevel(int run)
          返回该行中第 n 次逻辑运行的层次。
 intgetRunLimit(int run)
          以该行开始的偏移量返回该行中第 n 次逻辑运行之后的字符索引。
 intgetRunStart(int run)
          以该行开始的偏移量返回该行中第 n 次逻辑运行开始时的字符索引。
 booleanisLeftToRight()
          如果该行都是从左到右的文本且基本方向也是从左到右,则返回 true。
 booleanisMixed()
          如果该行既不是从左到右也不是从右到左,则返回 true。
 booleanisRightToLeft()
          如果该行都是从右到左的文本且基本方向也是从右到左,则返回 true。
static voidreorderVisually(byte[] levels, int levelStart, Object[] objects, int objectStart, int count)
          根据对象的层次,在数组中将对象重新排序为可视顺序。
static booleanrequiresBidi(char[] text, int start, int limit)
          如果指定的文本需要双向分析,则返回 true。
 StringtoString()
          用于调试时显示双向算法的内部状态。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

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)
由给定的文本段和基本方向构造 Bidi。

参数:
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)
由给定的文本段构造 Bidi。

文本中 RUN_DIRECTION 属性(如果存在)定义了基本方向(从左到右或者从右到左)。如果不存在,使用 Unicode 双向算法计算基本方向,默认为如果文本中没有强方向字符则从左到右。此属性(如果存在)必须应用于段中所有文本。

文本中 BIDI_EMBEDDING 属性(如果存在)代表了嵌入层次信息。从 -1 到 -62 的负值指示重写层次的绝对值。从 1 到 62 的正值指示嵌入。如果值为 0 或者没有定义,则基本的嵌入层次由假定的基本方向来决定。

文本中的 NUMERIC_SHAPING 属性(如果存在)在运行双向算法之前将欧洲数字转换成其他十进制数字。此属性(如果存在)必须应用于段中所有文本。

参数:
paragraph - 具有可选的字符和段落属性信息的文本段。
另请参见:
TextAttribute.BIDI_EMBEDDING, TextAttribute.NUMERIC_SHAPING, TextAttribute.RUN_DIRECTION

Bidi

public Bidi(char[] text,
            int textStart,
            byte[] embeddings,
            int embStart,
            int paragraphLength,
            int flags)
由给定的文本、嵌入和方向信息构造 Bidi。Embeddings 数组可以为 null。如果有的话,其值代表了嵌入层次信息。从 -1 到 -61 的负值指示重写层次的绝对值。从 1 到 61 的正值指示嵌入。如果值为 0,则基本的嵌入层次由假定的基本方向来决定。

参数:
text - 包含了要处理的文本段的一个数组。
textStart - 段落开始的文本数组中的索引。
embeddings - 包含了段落中每个字符的嵌入值的一个数组。在假定不存在外部嵌入信息的情况下可能为空。
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)
构造一个 Bidi 对象,表示当前 Bidi 所代表的段落中的一行文本上的双向信息。如果整个段落装配在一行中则不需要此调用。

参数:
lineStart - 从段的开始到行的开始的偏移量。
lineLimit - 从段的开始到行的限制的偏移量。

isMixed

public boolean isMixed()
如果该行既不是从左到右也不是从右到左,则返回 true。这意味着它具有从左到右和从右到左文本的混合运行,或者基本方向与文本单运行的方向不同。

返回:
如果该行既不是从左到右也不是从右到左,则返回 true。