Movatterモバイル変換


[0]ホーム

URL:


ICU 77.1  77.1
Public Member Functions |Static Public Member Functions
icu::UnicodeSetIterator Class Referencefinal

UnicodeSetIterator iterates over the contents of aUnicodeSet.More...

#include <usetiter.h>

Inheritance diagram for icu::UnicodeSetIterator:

Public Member Functions

 UnicodeSetIterator (constUnicodeSet &set)
 Create an iterator over the given set.More...
 
 UnicodeSetIterator ()
 Create an iterator over nothing.More...
 
virtual ~UnicodeSetIterator ()
 Destructor.More...
 
UBool isString () const
 Returns true if the current element is a string.More...
 
UChar32 getCodepoint () const
 Returns the current code point, ifisString() returned false.More...
 
UChar32 getCodepointEnd () const
 Returns the end of the current code point range, ifisString() returned false andnextRange() was called.More...
 
constUnicodeStringgetString ()
 Returns the current string, ifisString() returned true.More...
 
UnicodeSetIteratorskipToStrings ()
 Skips over the remaining code points/ranges, if any.More...
 
UBool next ()
 Advances the iteration position to the next element in the set, which can be either a single code point or a string.More...
 
UBool nextRange ()
 Returns the next element in the set, either a code point range or a string.More...
 
void reset (constUnicodeSet &set)
 Sets this iterator to visit the elements of the given set and resets it to the start of that set.More...
 
void reset ()
 Resets this iterator to the start of the set.More...
 
virtualUClassID getDynamicClassID () const override
 ICU "poor man's RTTI", returns a UClassID for the actual class.More...
 
- Public Member Functions inherited fromicu::UObject
virtual ~UObject ()
 Destructor.More...
 

Static Public Member Functions

staticUClassID getStaticClassID ()
 ICU "poor man's RTTI", returns a UClassID for this class.More...
 

Detailed Description

UnicodeSetIterator iterates over the contents of aUnicodeSet.

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 theUnicodeSet, if any.

This class is not intended for public subclassing.

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

UnicodeSetIterator it(set);while (it.next()) {    processItem(it.getString());}

Each item in the set is accessed as a string. Set elements consisting of single code points are returned as strings containing just the one code point.

To iterate over code point ranges, instead of individual code points, use a loop like this:

UnicodeSetIterator it(set);while (it.nextRange()) {  if (it.isString()) {    processString(it.getString());  } else {    processCodepointRange(it.getCodepoint(), it.getCodepointEnd());  }}

To iterate over only the strings, start withskipToStrings().

Author
M. Davis
Stable:
ICU 2.4

Definition at line67 of fileusetiter.h.

Constructor & Destructor Documentation

◆ UnicodeSetIterator()[1/2]

icu::UnicodeSetIterator::UnicodeSetIterator(constUnicodeSetset)

Create an iterator over the given set.

The iterator is valid only so long asset is valid.

Parameters
setset to iterate over
Stable:
ICU 2.4

◆ UnicodeSetIterator()[2/2]

icu::UnicodeSetIterator::UnicodeSetIterator()

Create an iterator over nothing.

next() andnextRange() return false. This is a convenience constructor allowing the target to be set later.

Stable:
ICU 2.4

◆ ~UnicodeSetIterator()

virtual icu::UnicodeSetIterator::~UnicodeSetIterator()
virtual

Destructor.

Stable:
ICU 2.4

Member Function Documentation

◆ getCodepoint()

UChar32 icu::UnicodeSetIterator::getCodepoint() const
inline

Returns the current code point, ifisString() returned false.

Otherwise returns an undefined result.

Stable:
ICU 2.4

Definition at line310 of fileusetiter.h.

◆ getCodepointEnd()

UChar32 icu::UnicodeSetIterator::getCodepointEnd() const
inline

Returns the end of the current code point range, ifisString() returned false andnextRange() was called.

Otherwise returns an undefined result.

Stable:
ICU 2.4

Definition at line314 of fileusetiter.h.

◆ getDynamicClassID()

virtualUClassID icu::UnicodeSetIterator::getDynamicClassID() const
overridevirtual

ICU "poor man's RTTI", returns a UClassID for the actual class.

Stable:
ICU 2.4

Reimplemented fromicu::UObject.

◆ getStaticClassID()

staticUClassID icu::UnicodeSetIterator::getStaticClassID()
static

ICU "poor man's RTTI", returns a UClassID for this class.

Stable:
ICU 2.4

◆ getString()

constUnicodeString& icu::UnicodeSetIterator::getString()

Returns the current string, ifisString() returned true.

If the current iteration item is a code point, aUnicodeString containing that single code point is returned.

Ownership of the returned string remains with the iterator. The string is guaranteed to remain valid only until the iterator is advanced to the next item, or until the iterator is deleted.

Stable:
ICU 2.4

◆ isString()

UBool icu::UnicodeSetIterator::isString() const
inline

Returns true if the current element is a string.

If so, the caller can retrieve it withgetString(). If this method returns false, the current element is a code point or code point range, depending on whethernext() ornextRange() was called. Elements of types string and codepoint can both be retrieved with the functiongetString(). Elements of type codepoint can also be retrieved withgetCodepoint(). For ranges,getCodepoint() returns the starting codepoint of the range, andgetCodepointEnd() returns the end of the range.

Stable:
ICU 2.4

Definition at line306 of fileusetiter.h.

◆ next()

UBool icu::UnicodeSetIterator::next()

Advances the iteration position to the next element in the set, which can be either a single code point or a string.


If there are no more elements in the set, return false.

IfisString() == true, the value is a string, otherwise the value is a single code point. Elements of either type can be retrieved with the functiongetString(), while elements of consisting of a single code point can be retrieved withgetCodepoint()

The order of iteration is all code points in sorted order, followed by all strings sorted order. Do not mix calls tonext() andnextRange() without callingreset() between them. The results of doing so are undefined.

Returns
true if there was another element in the set.
Stable:
ICU 2.4

◆ nextRange()

UBool icu::UnicodeSetIterator::nextRange()

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. IfisString() == true, the value is a string and can be accessed withgetString(). Otherwise the value is a range of one or more code points fromgetCodepoint() togetCodepointeEnd() 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. The value returned fromgetString() is undefined unlessisString() == true. Do not mix calls tonext() andnextRange() without callingreset() between them. The results of doing so are undefined.

Returns
true if there was another element in the set.
Stable:
ICU 2.4

◆ reset()[1/2]

void icu::UnicodeSetIterator::reset()

Resets this iterator to the start of the set.

Stable:
ICU 2.4

◆ reset()[2/2]

void icu::UnicodeSetIterator::reset(constUnicodeSetset)

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 asset is valid.

Parameters
setthe set to iterate over.
Stable:
ICU 2.4

◆ skipToStrings()

UnicodeSetIterator& icu::UnicodeSetIterator::skipToStrings()
inline

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

A following call tonext() ornextRange() will yield a string, if there is one. No-op ifnext() would return false, or if it would yield a string anyway.

Returns
*this
Stable:
ICU 70
See also
UnicodeSet::strings()

Definition at line176 of fileusetiter.h.


The documentation for this class was generated from the following file:

Generated by doxygen 1.9.1
[8]ページ先頭

©2009-2025 Movatter.jp