Most visited

Recently visited

Added in API level 24

UnicodeSetIterator

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。

Summary

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

Fields

IS_STRING

Added in API level 24
int IS_STRING

如果迭代器指向一个字符串,则值为codepoint 如果codepoint == IS_STRING ,然后检查string当前的迭代结果。

codepoint

Added in API level 24
int codepoint

当前代码点或特殊值 IS_STRING ,如果迭代器指向一个字符串。

codepointEnd

Added in API level 24
int codepointEnd

当使用nextRange()迭代范围时, codepointEnd包含迭代范围的包含端,如果是codepoint != IS_STRING 如果迭代使用next(),或者如果codepoint == IS_STRING,codepointEnd的值是未定义的代码点。

string

Added in API level 24
String string

如果codepoint == IS_STRING ,则string指向当前字符串。 如果codepoint != IS_STRING ,则值string未定义。

Public constructors

UnicodeSetIterator

Added in API level 24
UnicodeSetIterator (UnicodeSet set)

在给定的集合上创建一个迭代器。

Parameters
set UnicodeSet: set to iterate over

UnicodeSetIterator

Added in API level 24
UnicodeSetIterator ()

创建一个没有任何代码的迭代器 next()nextRange()返回false。 这是一个方便的构造函数,允许稍后设置目标。

Public methods

getString

Added in API level 24
String getString ()

从迭代器中获取当前字符串。 仅在调用next()之后使用,而不是nextRange()。

Returns
String

next

Added in API level 24
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.

nextRange

Added in API level 24
boolean nextRange ()

返回集合中的下一个元素,代码点范围或字符串。 如果集合中没有更多元素,则返回false。 如果codepoint == IS_STRING ,该值是string字段中的字符串。 否则,该值是从codepointcodepointeEnd(含)的一个或多个代码点的范围。

迭代的顺序是按排序顺序排列的所有代码点范围,后面跟着所有的排序顺序。 范围不相交而且不相邻。 string未定义,除非codepoint == IS_STRING 不要将呼叫混合到next()nextRange(),不要在它们之间呼叫reset() 这样做的结果是不确定的。

Returns
boolean true if there was another element in the set and this object contains the element.

reset

Added in API level 24
void reset ()

将此迭代器重置到集合的开始位置。

reset

Added in API level 24
void reset (UnicodeSet uset)

设置此迭代器访问给定集合的元素并将其重置为该集合的开始。 只有set有效,迭代器才有效。

Parameters
uset UnicodeSet: the set to iterate over.

Hooray!