Most visited

Recently visited

Added in API level 1

Bidi

public final class Bidi
extends Object

java.lang.Object
   ↳ java.text.Bidi


这个类实现了Unicode双向算法。

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

创建后,可以查询Bidi对象以查看它所代表的文本是全部是从左到右还是从右到左。 这样的对象非常轻便,并且这个文本相对容易处理。

如果有多次文本运行,可以通过索引访问有关运行的信息以获取运行的开始,限制和级别。 这个级别代表了定向运行的方向和'嵌套级别'。 奇数级别是从右到左,而偶数级别是从左到右。 因此,例如,0级代表从左到右的文本,而1级代表从右到左的文本,而2级代表从右到左运行中嵌入的从左到右的文本。

Summary

Constants

int DIRECTION_DEFAULT_LEFT_TO_RIGHT

表示基本方向取决于Unicode双向算法中文本中第一个强方向字符的常量。

int DIRECTION_DEFAULT_RIGHT_TO_LEFT

表示基本方向取决于Unicode双向算法中文本中第一个强方向字符的常量。

int DIRECTION_LEFT_TO_RIGHT

表示基准方向的常数是从左到右。

int DIRECTION_RIGHT_TO_LEFT

表示基准方向的常数是从右到左。

Public constructors

Bidi(String paragraph, int flags)

根据给定的文本和基准方向创建双向。

Bidi(AttributedCharacterIterator paragraph)

从给定的文本段落创建双向。

Bidi(char[] text, int textStart, byte[] embeddings, int embStart, int paragraphLength, int flags)

根据给定的文本,嵌入和方向信息创建双向。

Public methods

boolean baseIsLeftToRight()

如果基本方向是从左到右,则返回true。

Bidi createLineBidi(int lineStart, int lineLimit)

在由当前双向表示的段落内的文本行上创建表示双向信息的双向对象。

int getBaseLevel()

返回基本级别(如果从左到右是0,如果是从右到左)。

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()

显示用于调试的bidi内部状态。

Inherited methods

From class java.lang.Object

Constants

DIRECTION_DEFAULT_LEFT_TO_RIGHT

Added in API level 1
int DIRECTION_DEFAULT_LEFT_TO_RIGHT

表示基本方向取决于Unicode双向算法中文本中第一个强方向字符的常量。 如果没有强方向性字符,基本方向是从左到右。

常量值:-2(0xfffffffe)

DIRECTION_DEFAULT_RIGHT_TO_LEFT

Added in API level 1
int DIRECTION_DEFAULT_RIGHT_TO_LEFT

表示基本方向取决于Unicode双向算法中文本中第一个强方向字符的常量。 如果没有强方向性字符,基本方向是从右到左。

常量值:-1(0xffffffff)

DIRECTION_LEFT_TO_RIGHT

Added in API level 1
int DIRECTION_LEFT_TO_RIGHT

表示基准方向的常数是从左到右。

常量值:0(0x00000000)

DIRECTION_RIGHT_TO_LEFT

Added in API level 1
int DIRECTION_RIGHT_TO_LEFT

表示基准方向的常数是从右到左。

常数值:1(0x00000001)

Public constructors

Bidi

Added in API level 1
Bidi (String paragraph, 
                int flags)

根据给定的文本和基准方向创建双向。

Parameters
paragraph String: a paragraph of text
flags int: a collection of flags that control the algorithm. The algorithm understands the flags DIRECTION_LEFT_TO_RIGHT, DIRECTION_RIGHT_TO_LEFT, DIRECTION_DEFAULT_LEFT_TO_RIGHT, and DIRECTION_DEFAULT_RIGHT_TO_LEFT. Other values are reserved.

Bidi

Added in API level 1
Bidi (AttributedCharacterIterator paragraph)

从给定的文本段落创建双向。

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

文本中的BIDI_EMBEDDING属性(如果存在)表示嵌入级别信息。 从-1到-62的负值表示覆盖级别的绝对值。 从1到62的正值表示嵌入。 如果值为零或未定义,则假定由基本方向确定的基础嵌入级别。

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

Parameters
paragraph AttributedCharacterIterator: a paragraph of text with optional character and paragraph attribute information

也可以看看:

Bidi

Added in API level 1
Bidi (char[] text, 
                int textStart, 
                byte[] embeddings, 
                int embStart, 
                int paragraphLength, 
                int flags)

根据给定的文本,嵌入和方向信息创建双向。 嵌入数组可能为空。 如果存在,则这些值表示嵌入级别信息。 从-1到-61的负值表示电平绝对值的覆盖值。 从1到61的正值表示嵌入。 如果值为零,则假定由基本方向确定的基础嵌入级别。

Parameters
text char: an array containing the paragraph of text to process.
textStart int: the index into the text array of the start of the paragraph.
embeddings byte: an array containing embedding values for each character in the paragraph. This can be null, in which case it is assumed that there is no external embedding information.
embStart int: the index into the embedding array of the start of the paragraph.
paragraphLength int: the length of the paragraph in the text and embeddings arrays.
flags int: a collection of flags that control the algorithm. The algorithm understands the flags DIRECTION_LEFT_TO_RIGHT, DIRECTION_RIGHT_TO_LEFT, DIRECTION_DEFAULT_LEFT_TO_RIGHT, and DIRECTION_DEFAULT_RIGHT_TO_LEFT. Other values are reserved.

Public methods

baseIsLeftToRight

Added in API level 1
boolean baseIsLeftToRight ()

如果基本方向是从左到右,则返回true。

Returns
boolean true if the base direction is left-to-right

createLineBidi

Added in API level 1
Bidi createLineBidi (int lineStart, 
                int lineLimit)

在由当前双向表示的段落内的文本行上创建表示双向信息的双向对象。 如果整个段落适合于一行,则不需要此调用。

Parameters
lineStart int: the offset from the start of the paragraph to the start of the line.
lineLimit int: the offset from the start of the paragraph to the limit of the line.
Returns
Bidi

getBaseLevel

Added in API level 1
int getBaseLevel ()

返回基本级别(如果从左到右是0,如果是从右到左)。

Returns
int the base level

getLength

Added in API level 1
int getLength ()

返回该行中文本的长度。

Returns
int the length of text in the line

getLevelAt

Added in API level 1
int getLevelAt (int offset)

以偏移量返回已解析的字符级别。 如果偏移量<0或> =线的长度,则返回基本方向级别。

Parameters
offset int: the index of the character for which to return the level
Returns
int the resolved level of the character at offset

getRunCount

Added in API level 1
int getRunCount ()

返回级别运行的次数。

Returns
int the number of level runs

getRunLevel

Added in API level 1
int getRunLevel (int run)

返回此行中第n个逻辑运行的级别。

Parameters
run int: the index of the run, between 0 and getRunCount()
Returns
int the level of the run

getRunLimit

Added in API level 1
int getRunLimit (int run)

将此行中第n个逻辑运行结束后的字符索引作为从行首开始的偏移量。 例如,这将返回线上最后一次运行的线的长度。

Parameters
run int: the index of the run, between 0 and getRunCount()
Returns
int limit the limit of the run

getRunStart

Added in API level 1
int getRunStart (int run)

返回该行第n个逻辑运行开始处的字符索引,作为该行开始的偏移量。

Parameters
run int: the index of the run, between 0 and getRunCount()
Returns
int the start of the run

isLeftToRight

Added in API level 1
boolean isLeftToRight ()

如果该行全部是从左到右的文本并且基本方向是从左到右,则返回true。

Returns
boolean true if the line is all left-to-right text and the base direction is left-to-right

isMixed

Added in API level 1
boolean isMixed ()

如果该行不是从左到右或从右到左,则返回true。 这意味着它要么从左到右和从右到左的文本混合运行,要么基本方向与唯一文本运行的方向不同。

Returns
boolean true if the line is not left-to-right or right-to-left.

isRightToLeft

Added in API level 1
boolean isRightToLeft ()

如果该行全部是从右到左的文本,并且基本方向是从右到左,则返回true。

Returns
boolean true if the line is all right-to-left text, and the base direction is right-to-left

reorderVisually

Added in API level 1
void reorderVisually (byte[] levels, 
                int levelStart, 
                Object[] objects, 
                int objectStart, 
                int count)

根据数组的级别将数组中的对象重新排序。 这是一个实用函数,当您按照逻辑顺序具有代表文本运行的对象集合时,可以使用该函数,每个运行包含单个级别的文本。 在元件indexobjectStartobjectStart + count的对象阵列中会被重新排序成可视顺序假定文本中的每个运行具有:(在由所述水平阵列中的相应的元素所指示的电平index - objectStart + levelStart )。

Parameters
levels byte: an array representing the bidi level of each object
levelStart int: the start position in the levels array
objects Object: the array of objects to be reordered into visual order
objectStart int: the start position in the objects array
count int: the number of objects to reorder

requiresBidi

Added in API level 1
boolean requiresBidi (char[] text, 
                int start, 
                int limit)

如果指定的文字需要双向分析,则返回true。 如果返回false,则文本将显示从左到右。 客户可以避免构建一个双向对象。 假定Unicode的阿拉伯语表示区域中的文本已经被整形和排序以供显示,因此不会导致此函数返回true。

Parameters
text char: the text containing the characters to test
start int: the start of the range of characters to test
limit int: the limit of the range of characters to test
Returns
boolean true if the range of characters requires bidi analysis

toString

Added in API level 1
String toString ()

显示用于调试的bidi内部状态。

Returns
String a string representation of the object.

Hooray!