所有类


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 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
          表示基本方向是从右到左的常量。
 
构造方法摘要
Bidi(AttributedCharacterIterator paragraph)
          由给定的文本段构造 Bidi。
Bidi(char[] text, int textStart, byte[] embeddings, int embStart, int paragraphLength, int flags)
          由给定的文本、嵌入和方向信息构造 Bidi。
Bidi(String paragraph, int flags)
          由给定的文本段和基本方向构造 Bidi。
 
方法摘要
 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()
          用于调试时显示双向算法的内部状态。
 
从类 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。

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部