JavaTM 2 Platform
Standard Ed. 6

java.text
類別 CollationElementIterator

java.lang.Object
  繼承者 java.text.CollationElementIterator

public final class CollationElementIterator
extends Object

CollationElementIterator 類別用作一個迭代器,以遍歷國際化字元串的每個字元。使用該迭代器返回所定位字元的排序優先級。我們所指的字元排序優先級,是指在給定 collation 物件中定義字元排序方式的一個鍵。

例如,在西班牙語中考慮以下字元串:

"ca" -> 第一個鍵是鍵 ('c'),而第二個鍵是鍵 ('a')。
"cha" -> 第一個鍵是鍵 ('ch'),而第二個鍵是鍵 ('a')。
 
在德語中,考慮以下字元串:
"?b" -> 第一個鍵是鍵 ('a'),第二個鍵是鍵 ('e'),
第三個鍵是鍵 ('b')。
 
字元的鍵是由主順序(short)、第二順序(byte)和第三順序(byte)組成的一個整數。Java 嚴格定義了其基本資料型別的大小和符號。因此,static 函數 primaryOrdersecondaryOrdertertiaryOrder 分別返回 intshortshort,以確保鍵值的正確性。

以下是使用迭代器的例子:


  String testString = "This is a test";
  RuleBasedCollator ruleBasedCollator = (RuleBasedCollator)Collator.getInstance();
  CollationElementIterator collationElementIterator = ruleBasedCollator.getCollationElementIterator(testString);
  int primaryOrder = CollationElementIterator.primaryOrder(collationElementIterator.next());
 

CollationElementIterator.next 返回下一個字元的 collation 順序。collation 順序由主順序、第二順序和第三順序組成。collation 順序的資料型別是 int。collation 順序的前 16 位是它的主順序,接下來 8 位是第二順序,最後 8 位是第三順序。

另請參見:
Collator, RuleBasedCollator

欄位摘要
static int NULLORDER
          Null 順序指示鼠標到達字元串末尾。
 
方法摘要
 int getMaxExpansion(int order)
          返回以指定比較順序結束的所有擴展序列的最大長度。
 int getOffset()
          返回源文本中對應於下一個 collation 元素的字元偏移量。
 int next()
          獲取字元串中的下一個 collation 元素。
 int previous()
          獲取字元串中前一個 collation 元素。
static int primaryOrder(int order)
          返回 collation 元素的主順序。
 void reset()
          將鼠標重置於字元串開始處。
static short secondaryOrder(int order)
          返回 collation 元素的第二順序。
 void setOffset(int newOffset)
          將迭代器設置為指向對應於指定字元的 collation 元素(參數是源字元串中的一個 CHARACTER 偏移量,而不是其對應 collation 元素序列的偏移量)。
 void setText(CharacterIterator source)
          設置一個要迭代的新字元串。
 void setText(String source)
          設置一個要迭代的新字元串。
static short tertiaryOrder(int order)
          返回 collation 元素的第三順序。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

欄位詳細資訊

NULLORDER

public static final int NULLORDER
Null 順序指示鼠標到達字元串末尾。

另請參見:
常數欄位值
方法詳細資訊

reset

public void reset()
將鼠標重置於字元串開始處。下一次調用 next() 將返回字元串中的第一個 collation 元素。


next

public int next()
獲取字元串中的下一個 collation 元素。

此迭代器對建構於字元串的 collation 元素序列進行迭代。因為從字元到 collation 元素不一定存在一一映射關係,因此這與“返回字元串中下一個字元的 collation 元素(或排序優先級)”意義不同。

此函數返回迭代器當前指向的 collation 元素,然後將內部指針更新為指向下一個元素。previous() 則首先更新指針,然後再返回元素。這意味著,如果您在進行迭代時改變方向(例如,調用 next(),然後調用 previous(),或者調用 previous(),然後調用 next()),將兩次獲取同一個元素。


previous

public int previous()
獲取字元串中前一個 collation 元素。

此迭代器對建構於字元串的 collation 元素序列進行迭代。因為從字元到 collation 元素不一定存在一一映射關係,因此這與“返回字元串中前一個字元的 collation 元素(或排序優先級)”意義不同。

此函數將迭代器的內部指針更新為指向它當前指向的 collation 元素的前一個元素,然後返回該元素;而 next() 則先返回當前元素,然後更新指針。這意味著,如果您在進行迭代時改變方向(例如,調用 next(),然後調用 previous(),或者調用 previous(),然後調用 next()),將兩次獲取同一個元素。

從以下版本開始:
1.2

primaryOrder

public static final int primaryOrder(int order)
返回 collation 元素的主順序。

參數:
order - collation 元素
返回:
該元素的主順序

secondaryOrder

public static final short secondaryOrder(int order)
返回 collation 元素的第二順序。

參數:
order - collation 元素
返回:
該元素的第二順序

tertiaryOrder

public static final short tertiaryOrder(int order)
返回 collation 元素的第三順序。

參數:
order - collation 元素
返回:
該元素的第二順序

setOffset

public void setOffset(int newOffset)
將迭代器設置為指向對應於指定字元的 collation 元素(參數是源字元串中的一個 CHARACTER 偏移量,而不是其對應 collation 元素序列的偏移量)。下一次調用 next() 返回的值將是對應於文本中指定位置的 collation 元素。如果該位置在 contracting 字元序列的中間,則下一次調用 next() 的結果是該序列的 collation 元素。這意味著 getOffset() 返回的值不一定是前一次調用 setOffset() 所傳入的值。

參數:
newOffset - 源文本中新的字元偏移量。
從以下版本開始:
1.2

getOffset

public int getOffset()
返回源文本中對應於下一個 collation 元素的字元偏移量。(也就是說,getOffset() 返回的文本中的位置對應於下一次調用 next() 所返回的 collation 元素。)此值始終是對應於 collation 元素的 FIRST 字元的索引(contracting 字元序列是指兩個或更多個字元都對應於同一個 collation 元素)。這意味著,如果調用 setOffset(x)後緊接著調用 getOffset(),getOffset() 不一定返回 x。

返回:
源文本中對應於下一次調用 next() 所返回的 collation 元素的字元偏移量。
從以下版本開始:
1.2

getMaxExpansion

public int getMaxExpansion(int order)
返回以指定比較順序結束的所有擴展序列的最大長度。

參數:
order - 由 previous 或 next 返回的 collation 順序。
返回:
以指定比較順序結束的所有擴展序列的最大長度。
從以下版本開始:
1.2

setText

public void setText(String source)
設置一個要迭代的新字元串。

參數:
source - 新的源文本
從以下版本開始:
1.2

setText

public void setText(CharacterIterator source)
設置一個要迭代的新字元串。

參數:
source - 新的源文本。
從以下版本開始:
1.2

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only