Added in API level 24

UnicodeSetIterator


open class UnicodeSetIterator
kotlin.Any
   ↳ android.icu.text.UnicodeSetIterator

UnicodeSetIterator iterates over the contents of a UnicodeSet. It iterates over either code points or code point ranges. After all code points or ranges have been returned, it returns the multicharacter strings of the UnicodeSet, if any.

This class is not intended for public subclassing.

To iterate over code points and multicharacter strings, use a loop like this:

for (UnicodeSetIterator it = new UnicodeSetIterator(set); it.next();) {
    processString(it.getString());
  }
  

To iterate over code point ranges, use a loop like this:

for (UnicodeSetIterator it = new UnicodeSetIterator(set); it.nextRange();) {
    if (it.codepoint != UnicodeSetIterator.IS_STRING) {
      processCodepointRange(it.codepoint, it.codepointEnd);
    } else {
      processString(it.getString());
    }
  }
  

To iterate over only the strings, start with new UnicodeSetIterator(set).skipToStrings().

Warning: For speed, UnicodeSet iteration does not check for concurrent modification. Do not alter the UnicodeSet while iterating.

Summary

Public constructors

Create an iterator over the given set.

Create an iterator over nothing.

Public methods
open String!

Gets the current string from the iterator.

open Boolean

Returns the next element in the set, either a single code point or a string.

open Boolean

Returns the next element in the set, either a code point range or a string.

open Unit
reset(uset: UnicodeSet!)

Sets this iterator to visit the elements of the given set and resets it to the start of that set.

open Unit

Resets this iterator to the start of the set.

open UnicodeSetIterator!

Skips over the remaining code points/ranges, if any.

Properties
static Int

Value of codepoint if the iterator points to a string.

Int

Current code point, or the special value IS_STRING, if the iterator points to a string.

Int

When iterating over ranges using nextRange(), codepointEnd contains the inclusive end of the iteration range, if codepoint != IS_STRING.

String!

If codepoint == IS_STRING, then string points to the current string.

Public constructors

UnicodeSetIterator

Added in API level 24
UnicodeSetIterator(set: UnicodeSet!)

Create an iterator over the given set.

Parameters
set UnicodeSet!: set to iterate over

UnicodeSetIterator

Added in API level 24
UnicodeSetIterator()

Create an iterator over nothing. next() and nextRange() return false. This is a convenience constructor allowing the target to be set later.

Public methods

getString

Added in API level 24
open fun getString(): String!

Gets the current string from the iterator. Only use after calling next(), not nextRange().

next

Added in API level 24
open fun next(): Boolean

Returns the next element in the set, either a single code point or a string. If there are no more elements in the set, return false. If codepoint == IS_STRING, the value is a string in the string field. Otherwise the value is a single code point in the codepoint field.

The order of iteration is all code points in sorted order, followed by all strings sorted order. codepointEnd is undefined after calling this method. string is undefined unless codepoint == IS_STRING. Do not mix calls to next() and nextRange() without calling reset() between them. The results of doing so are undefined.

Warning: For speed, UnicodeSet iteration does not check for concurrent modification. Do not alter the UnicodeSet while iterating.

Return
Boolean true if there was another element in the set and this object contains the element.

nextRange

Added in API level 24
open fun nextRange(): Boolean

Returns the next element in the set, either a code point range or a string. If there are no more elements in the set, return false. If codepoint == IS_STRING, the value is a string in the string field. Otherwise the value is a range of one or more code points from codepoint to codepointeEnd inclusive.

The order of iteration is all code points ranges in sorted order, followed by all strings sorted order. Ranges are disjoint and non-contiguous. string is undefined unless codepoint == IS_STRING. Do not mix calls to next() and nextRange() without calling reset() between them. The results of doing so are undefined.

Return
Boolean true if there was another element in the set and this object contains the element.

reset

Added in API level 24
open fun reset(uset: UnicodeSet!): Unit

Sets this iterator to visit the elements of the given set and resets it to the start of that set. The iterator is valid only so long as set is valid.

Parameters
uset UnicodeSet!: the set to iterate over.

reset

Added in API level 24
open fun reset(): Unit

Resets this iterator to the start of the set.

skipToStrings

Added in API level 34
open fun skipToStrings(): UnicodeSetIterator!

Skips over the remaining code points/ranges, if any. A following call to next() or nextRange() will yield a string, if there is one. No-op if next() would return false, or if it would yield a string anyway.

Return
UnicodeSetIterator! this

Properties

IS_STRING

Added in API level 24
static var IS_STRING: Int

Value of codepoint if the iterator points to a string. If codepoint == IS_STRING, then examine string for the current iteration result.

codepoint

Added in API level 24
var codepoint: Int

Current code point, or the special value IS_STRING, if the iterator points to a string.

codepointEnd

Added in API level 24
var codepointEnd: Int

When iterating over ranges using nextRange(), codepointEnd contains the inclusive end of the iteration range, if codepoint != IS_STRING. If iterating over code points using next(), or if codepoint == IS_STRING, then the value of codepointEnd is undefined.

string

Added in API level 24
var string: String!

If codepoint == IS_STRING, then string points to the current string. If codepoint != IS_STRING, the value of string is undefined.