|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.text.Bidi
public final class Bidi
此類別實作了 Unicode 雙向演算法 (Unicode Bidirectional Algorithm)。
Bidi 物件提供了有關用於創建它的文本的雙向重排序的資訊。例如,這對於正確顯示阿拉伯語或者希伯來語文本來說是必需的。這些語言本來是混合方向的,因為其從左向右排列數字,而大多數其他文本則從右向左排列。
一旦創建完成,Bidi 物件就能查詢,以查看文本表示都是從左向右或從右向左。這些物件都是非常輕量級的並且此文本也相對容易處理。
如果有多次文本的運行,則可以通過索引存取運行的資訊,以獲得起始位置、限制和運行層次。層次代表了方向和一個方向運行的“巢狀層次”。奇數層次是從右到左,則偶數層次是從左到右。因此,例如層次 0 代表從左到右的文本,而層次 1 代表從右到左的文本,層次 2 代表嵌入在一個從右到左的運行中的從左到右的文本。
欄位摘要 | |
---|---|
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 |
欄位詳細資訊 |
---|
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 的正值指示嵌入。如果值為 0 或者沒有定義,則基本的嵌入層次由假定的基本方向來決定。
文本中的 NUMERIC_SHAPING 屬性(如果存在)在運行雙向演算法之前將歐洲數字轉換成其他十進制數字。此屬性(如果存在)必須應用於段中所有文本。
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
- 套件含了段落中每個字元的嵌入值的一個陣列。在假定不存在外部嵌入資訊的情況下可能為空。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
- 從段的開始到行的限制的偏移量。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 + levelStart
)所指示的層次時,物件陣列中位於 index
的元素從 objectStart
一直到 objectStart + count
將被重新排序為可視順序。
levels
- 表示每一個物件雙向層次的陣列levelStart
- 層次陣列中的開始位置objects
- 將被重新排序為可視順序的物件陣列objectStart
- 物件陣列中的開始位置count
- 要重新排序的物件數public String toString()
Object
中的 toString
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。