public class UnicodeSetIterator
extends Object
java.lang.Object | |
↳ | android.icu.text.UnicodeSetIterator |
UnicodeSetIterator迭代UnicodeSet的内容。 它迭代代码点或代码点范围。 在返回所有代码点或范围后,它将返回UnicodSet的多字符字符串(如果有的话)。
要遍历代码点和多字符字符串,请使用如下所示的循环:
for (UnicodeSetIterator it = new UnicodeSetIterator(set); it.next();) { processString(it.getString()); }
要遍历代码点范围,请使用如下所示的循环:
for (UnicodeSetIterator it = new UnicodeSetIterator(set); it.nextRange();) { if (it.codepoint != UnicodeSetIterator.IS_STRING) { processCodepointRange(it.codepoint, it.codepointEnd); } else { processString(it.getString()); } }
警告:对于速度,UnicodeSet迭代不检查并发修改。 迭代时不要更改UnicodeSet。
Fields |
|
---|---|
public static int |
IS_STRING 如果迭代器指向一个字符串,则 值为codepoint 。 |
public int |
codepoint 当前代码点或特殊值 IS_STRING ,如果迭代器指向一个字符串。 |
public int |
codepointEnd 当使用 nextRange()迭代范围时, codepointEnd包含迭代范围的包含端,如果是 codepoint != IS_STRING 。 |
public String |
string 如果 codepoint == IS_STRING ,则 string指向当前字符串。 |
Public constructors |
|
---|---|
UnicodeSetIterator(UnicodeSet set) 在给定的集合上创建一个迭代器。 |
|
UnicodeSetIterator() 创建一个没有任何代码的迭代器 |
Public methods |
|
---|---|
String |
getString() 从迭代器中获取当前字符串。 |
boolean |
next() 返回集合中的下一个元素,即单个代码点或字符串。 |
boolean |
nextRange() 返回集合中的下一个元素,代码点范围或字符串。 |
void |
reset() 将此迭代器重置到集合的开始位置。 |
void |
reset(UnicodeSet uset) 设置此迭代器访问给定集合的元素并将其重置为该集合的开始。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
int IS_STRING
如果迭代器指向一个字符串,则值为codepoint 。 如果codepoint == IS_STRING ,然后检查string当前的迭代结果。
int codepointEnd
当使用nextRange()迭代范围时, codepointEnd包含迭代范围的包含端,如果是codepoint != IS_STRING 。 如果迭代使用next(),或者如果codepoint == IS_STRING,则codepointEnd的值是未定义的代码点。
String string
如果codepoint == IS_STRING ,则string指向当前字符串。 如果codepoint != IS_STRING ,则值string未定义。
UnicodeSetIterator (UnicodeSet set)
在给定的集合上创建一个迭代器。
Parameters | |
---|---|
set |
UnicodeSet : set to iterate over |
UnicodeSetIterator ()
创建一个没有任何代码的迭代器 next()和nextRange()返回false。 这是一个方便的构造函数,允许稍后设置目标。
String getString ()
从迭代器中获取当前字符串。 仅在调用next()之后使用,而不是nextRange()。
Returns | |
---|---|
String |
boolean next ()
返回集合中的下一个元素,即单个代码点或字符串。 如果集合中没有更多元素,则返回false。 如果codepoint == IS_STRING ,该值是string字段中的字符串。 否则,该值是codepoint字段中的单个代码点。
迭代次序是按排序顺序排列的所有代码点,然后是所有字符串排序顺序。 调用此方法后codepointEnd未定义。 string未定义,除非codepoint == IS_STRING 。 不要将呼叫混合到next()和nextRange(),而不要在它们之间呼叫reset() 。 这样做的结果是不确定的。
警告:对于速度,UnicodeSet迭代不检查并发修改。 迭代时不要更改UnicodeSet。
Returns | |
---|---|
boolean |
true if there was another element in the set and this object contains the element. |
boolean nextRange ()
返回集合中的下一个元素,代码点范围或字符串。 如果集合中没有更多元素,则返回false。 如果codepoint == IS_STRING ,该值是string字段中的字符串。 否则,该值是从codepoint到codepointeEnd(含)的一个或多个代码点的范围。
迭代的顺序是按排序顺序排列的所有代码点范围,后面跟着所有的排序顺序。 范围不相交而且不相邻。 string未定义,除非codepoint == IS_STRING 。 不要将呼叫混合到next()和nextRange(),而不要在它们之间呼叫reset() 。 这样做的结果是不确定的。
Returns | |
---|---|
boolean |
true if there was another element in the set and this object contains the element. |
void reset (UnicodeSet uset)
设置此迭代器访问给定集合的元素并将其重置为该集合的开始。 只有set有效,迭代器才有效。
Parameters | |
---|---|
uset |
UnicodeSet : the set to iterate over. |