|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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。