ICU 72.1 72.1
|
A concrete subclass of CharacterIterator that iterates over the characters (code units or code points) in a char16_t array. More...
#include <uchriter.h>
Public Member Functions | |
UCharCharacterIterator (ConstChar16Ptr textPtr, int32_t length) | |
Create an iterator over the char16_t array referred to by "textPtr". More... | |
UCharCharacterIterator (ConstChar16Ptr textPtr, int32_t length, int32_t position) | |
Create an iterator over the char16_t array referred to by "textPtr". More... | |
UCharCharacterIterator (ConstChar16Ptr textPtr, int32_t length, int32_t textBegin, int32_t textEnd, int32_t position) | |
Create an iterator over the char16_t array referred to by "textPtr". More... | |
UCharCharacterIterator (const UCharCharacterIterator &that) | |
Copy constructor. More... | |
virtual | ~UCharCharacterIterator () |
Destructor. More... | |
UCharCharacterIterator & | operator= (const UCharCharacterIterator &that) |
Assignment operator. More... | |
virtual bool | operator== (const ForwardCharacterIterator &that) const override |
Returns true if the iterators iterate over the same range of the same string and are pointing at the same character. More... | |
virtual int32_t | hashCode (void) const override |
Generates a hash code for this iterator. More... | |
virtual UCharCharacterIterator * | clone () const override |
Returns a new UCharCharacterIterator referring to the same character in the same range of the same string as this one. More... | |
virtual char16_t | first (void) override |
Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit. More... | |
virtual char16_t | firstPostInc (void) override |
Sets the iterator to refer to the first code unit in its iteration range, returns that code unit, and moves the position to the second code unit. More... | |
virtual UChar32 | first32 (void) override |
Sets the iterator to refer to the first code point in its iteration range, and returns that code unit, This can be used to begin an iteration with next32(). More... | |
virtual UChar32 | first32PostInc (void) override |
Sets the iterator to refer to the first code point in its iteration range, returns that code point, and moves the position to the second code point. More... | |
virtual char16_t | last (void) override |
Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit. More... | |
virtual UChar32 | last32 (void) override |
Sets the iterator to refer to the last code point in its iteration range, and returns that code unit. More... | |
virtual char16_t | setIndex (int32_t position) override |
Sets the iterator to refer to the "position"-th code unit in the text-storage object the iterator refers to, and returns that code unit. More... | |
virtual UChar32 | setIndex32 (int32_t position) override |
Sets the iterator to refer to the beginning of the code point that contains the "position"-th code unit in the text-storage object the iterator refers to, and returns that code point. More... | |
virtual char16_t | current (void) const override |
Returns the code unit the iterator currently refers to. More... | |
virtual UChar32 | current32 (void) const override |
Returns the code point the iterator currently refers to. More... | |
virtual char16_t | next (void) override |
Advances to the next code unit in the iteration range (toward endIndex()), and returns that code unit. More... | |
virtual char16_t | nextPostInc (void) override |
Gets the current code unit for returning and advances to the next code unit in the iteration range (toward endIndex()). More... | |
virtual UChar32 | next32 (void) override |
Advances to the next code point in the iteration range (toward endIndex()), and returns that code point. More... | |
virtual UChar32 | next32PostInc (void) override |
Gets the current code point for returning and advances to the next code point in the iteration range (toward endIndex()). More... | |
virtual UBool | hasNext () override |
Returns false if there are no more code units or code points at or after the current position in the iteration range. More... | |
virtual char16_t | previous (void) override |
Advances to the previous code unit in the iteration range (toward startIndex()), and returns that code unit. More... | |
virtual UChar32 | previous32 (void) override |
Advances to the previous code point in the iteration range (toward startIndex()), and returns that code point. More... | |
virtual UBool | hasPrevious () override |
Returns false if there are no more code units or code points before the current position in the iteration range. More... | |
virtual int32_t | move (int32_t delta, EOrigin origin) override |
Moves the current position relative to the start or end of the iteration range, or relative to the current position itself. More... | |
virtual int32_t | move32 (int32_t delta, EOrigin origin) override |
Moves the current position relative to the start or end of the iteration range, or relative to the current position itself. More... | |
void | setText (ConstChar16Ptr newText, int32_t newTextLength) |
Sets the iterator to iterate over a new range of text. More... | |
virtual void | getText (UnicodeString &result) override |
Copies the char16_t array under iteration into the UnicodeString referred to by "result". More... | |
virtual UClassID | getDynamicClassID (void) const override |
Return a class ID for this object (not really public) More... | |
Public Member Functions inherited from icu::CharacterIterator | |
virtual | ~CharacterIterator () |
Destructor. More... | |
virtual CharacterIterator * | clone () const =0 |
Returns a pointer to a new CharacterIterator of the same concrete class as this one, and referring to the same character in the same text-storage object as this one. More... | |
virtual char16_t | first (void)=0 |
Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit. More... | |
virtual char16_t | firstPostInc (void) |
Sets the iterator to refer to the first code unit in its iteration range, returns that code unit, and moves the position to the second code unit. More... | |
virtual UChar32 | first32 (void)=0 |
Sets the iterator to refer to the first code point in its iteration range, and returns that code unit, This can be used to begin an iteration with next32(). More... | |
virtual UChar32 | first32PostInc (void) |
Sets the iterator to refer to the first code point in its iteration range, returns that code point, and moves the position to the second code point. More... | |
int32_t | setToStart () |
Sets the iterator to refer to the first code unit or code point in its iteration range. More... | |
virtual char16_t | last (void)=0 |
Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit. More... | |
virtual UChar32 | last32 (void)=0 |
Sets the iterator to refer to the last code point in its iteration range, and returns that code unit. More... | |
int32_t | setToEnd () |
Sets the iterator to the end of its iteration range, just behind the last code unit or code point. More... | |
virtual char16_t | setIndex (int32_t position)=0 |
Sets the iterator to refer to the "position"-th code unit in the text-storage object the iterator refers to, and returns that code unit. More... | |
virtual UChar32 | setIndex32 (int32_t position)=0 |
Sets the iterator to refer to the beginning of the code point that contains the "position"-th code unit in the text-storage object the iterator refers to, and returns that code point. More... | |
virtual char16_t | current (void) const =0 |
Returns the code unit the iterator currently refers to. More... | |
virtual UChar32 | current32 (void) const =0 |
Returns the code point the iterator currently refers to. More... | |
virtual char16_t | next (void)=0 |
Advances to the next code unit in the iteration range (toward endIndex()), and returns that code unit. More... | |
virtual UChar32 | next32 (void)=0 |
Advances to the next code point in the iteration range (toward endIndex()), and returns that code point. More... | |
virtual char16_t | previous (void)=0 |
Advances to the previous code unit in the iteration range (toward startIndex()), and returns that code unit. More... | |
virtual UChar32 | previous32 (void)=0 |
Advances to the previous code point in the iteration range (toward startIndex()), and returns that code point. More... | |
virtual UBool | hasPrevious ()=0 |
Returns false if there are no more code units or code points before the current position in the iteration range. More... | |
int32_t | startIndex (void) const |
Returns the numeric index in the underlying text-storage object of the character returned by first(). More... | |
int32_t | endIndex (void) const |
Returns the numeric index in the underlying text-storage object of the position immediately BEYOND the character returned by last(). More... | |
int32_t | getIndex (void) const |
Returns the numeric index in the underlying text-storage object of the character the iterator currently refers to (i.e., the character returned by current()). More... | |
int32_t | getLength () const |
Returns the length of the entire text in the underlying text-storage object. More... | |
virtual int32_t | move (int32_t delta, EOrigin origin)=0 |
Moves the current position relative to the start or end of the iteration range, or relative to the current position itself. More... | |
virtual int32_t | move32 (int32_t delta, EOrigin origin)=0 |
Moves the current position relative to the start or end of the iteration range, or relative to the current position itself. More... | |
virtual void | getText (UnicodeString &result)=0 |
Copies the text under iteration into the UnicodeString referred to by "result". More... | |
Public Member Functions inherited from icu::ForwardCharacterIterator | |
virtual | ~ForwardCharacterIterator () |
Destructor. More... | |
virtual bool | operator== (const ForwardCharacterIterator &that) const =0 |
Returns true when both iterators refer to the same character in the same character-storage object. More... | |
bool | operator!= (const ForwardCharacterIterator &that) const |
Returns true when the iterators refer to different text-storage objects, or to different characters in the same text-storage object. More... | |
virtual int32_t | hashCode (void) const =0 |
Generates a hash code for this iterator. More... | |
virtual UClassID | getDynamicClassID (void) const override=0 |
Returns a UClassID for this ForwardCharacterIterator ("poor man's
RTTI"). More... | |
virtual char16_t | nextPostInc (void)=0 |
Gets the current code unit for returning and advances to the next code unit in the iteration range (toward endIndex()). More... | |
virtual UChar32 | next32PostInc (void)=0 |
Gets the current code point for returning and advances to the next code point in the iteration range (toward endIndex()). More... | |
virtual UBool | hasNext ()=0 |
Returns false if there are no more code units or code points at or after the current position in the iteration range. More... | |
Public Member Functions inherited from icu::UObject | |
virtual | ~UObject () |
Destructor. More... | |
virtual UClassID | getDynamicClassID () const |
ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class. More... | |
Static Public Member Functions | |
static UClassID | getStaticClassID (void) |
Return a class ID for this class (not really public) More... | |
Protected Member Functions | |
UCharCharacterIterator () | |
Protected constructor. More... | |
Protected Member Functions inherited from icu::CharacterIterator | |
CharacterIterator () | |
Empty constructor. More... | |
CharacterIterator (int32_t length) | |
Constructor, just setting the length field in this base class. More... | |
CharacterIterator (int32_t length, int32_t position) | |
Constructor, just setting the length and position fields in this base class. More... | |
CharacterIterator (int32_t length, int32_t textBegin, int32_t textEnd, int32_t position) | |
Constructor, just setting the length, start, end, and position fields in this base class. More... | |
CharacterIterator (const CharacterIterator &that) | |
Copy constructor. More... | |
CharacterIterator & | operator= (const CharacterIterator &that) |
Assignment operator. More... | |
Protected Member Functions inherited from icu::ForwardCharacterIterator | |
ForwardCharacterIterator () | |
Default constructor to be overridden in the implementing class. More... | |
ForwardCharacterIterator (const ForwardCharacterIterator &other) | |
Copy constructor to be overridden in the implementing class. More... | |
ForwardCharacterIterator & | operator= (const ForwardCharacterIterator &) |
Assignment operator to be overridden in the implementing class. More... | |
Protected Attributes | |
const char16_t * | text |
Protected member text. More... | |
Protected Attributes inherited from icu::CharacterIterator | |
int32_t | textLength |
Base class text length field. More... | |
int32_t | pos |
Base class field for the current position. More... | |
int32_t | begin |
Base class field for the start of the iteration range. More... | |
int32_t | end |
Base class field for the end of the iteration range. More... | |
Additional Inherited Members | |
Public Types inherited from icu::CharacterIterator | |
enum | EOrigin { kStart , kCurrent , kEnd } |
Origin enumeration for the move() and move32() functions. More... | |
Public Types inherited from icu::ForwardCharacterIterator | |
enum | { DONE = 0xffff } |
Value returned by most of ForwardCharacterIterator's functions when the iterator has reached the limits of its iteration. More... | |
A concrete subclass of CharacterIterator that iterates over the characters (code units or code points) in a char16_t array.
It's possible not only to create an iterator that iterates over an entire char16_t array, but also to create one that iterates over only a subrange of a char16_t array (iterators over different subranges of the same char16_t array don't compare equal).
Definition at line 38 of file uchriter.h.
icu::UCharCharacterIterator::UCharCharacterIterator | ( | ConstChar16Ptr | textPtr, |
int32_t | length | ||
) |
Create an iterator over the char16_t array referred to by "textPtr".
The iteration range is 0 to length-1
. text is only aliased, not adopted (the destructor will not delete it).
textPtr | The char16_t array to be iterated over |
length | The length of the char16_t array |
icu::UCharCharacterIterator::UCharCharacterIterator | ( | ConstChar16Ptr | textPtr, |
int32_t | length, | ||
int32_t | position | ||
) |
Create an iterator over the char16_t array referred to by "textPtr".
The iteration range is 0 to length-1
. text is only aliased, not adopted (the destructor will not delete it). The starting position is specified by "position". If "position" is outside the valid iteration range, the behavior of this object is undefined.
textPtr | The char16_t array to be iterated over |
length | The length of the char16_t array |
position | The starting position of the iteration |
icu::UCharCharacterIterator::UCharCharacterIterator | ( | ConstChar16Ptr | textPtr, |
int32_t | length, | ||
int32_t | textBegin, | ||
int32_t | textEnd, | ||
int32_t | position | ||
) |
Create an iterator over the char16_t array referred to by "textPtr".
The iteration range is 0 to end-1
. text is only aliased, not adopted (the destructor will not delete it). The starting position is specified by "position". If begin and end do not form a valid iteration range or "position" is outside the valid iteration range, the behavior of this object is undefined.
textPtr | The char16_t array to be iterated over |
length | The length of the char16_t array |
textBegin | The begin position of the iteration range |
textEnd | The end position of the iteration range |
position | The starting position of the iteration |
icu::UCharCharacterIterator::UCharCharacterIterator | ( | const UCharCharacterIterator & | that | ) |
Copy constructor.
The new iterator iterates over the same range of the same string as "that", and its initial position is the same as "that"'s current position.
that | The UCharCharacterIterator to be copied |
|
virtual |
Destructor.
|
protected |
Protected constructor.
|
overridevirtual |
Returns a new UCharCharacterIterator referring to the same character in the same range of the same string as this one.
The caller must delete the new iterator.
Implements icu::CharacterIterator.
Reimplemented in icu::StringCharacterIterator.
|
overridevirtual |
Returns the code unit the iterator currently refers to.
Implements icu::CharacterIterator.
|
overridevirtual |
Returns the code point the iterator currently refers to.
Implements icu::CharacterIterator.
|
overridevirtual |
Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit.
This can be used to begin an iteration with next().
Implements icu::CharacterIterator.
|
overridevirtual |
Sets the iterator to refer to the first code point in its iteration range, and returns that code unit, This can be used to begin an iteration with next32().
Note that an iteration with next32PostInc(), beginning with, e.g., setToStart() or firstPostInc(), is more efficient.
Implements icu::CharacterIterator.
|
overridevirtual |
Sets the iterator to refer to the first code point in its iteration range, returns that code point, and moves the position to the second code point.
This is an alternative to setToStart() for forward iteration with next32PostInc().
Reimplemented from icu::CharacterIterator.
|
overridevirtual |
Sets the iterator to refer to the first code unit in its iteration range, returns that code unit, and moves the position to the second code unit.
This is an alternative to setToStart() for forward iteration with nextPostInc().
Reimplemented from icu::CharacterIterator.
|
overridevirtual |
Return a class ID for this object (not really public)
Implements icu::ForwardCharacterIterator.
Reimplemented in icu::StringCharacterIterator.
|
static |
Return a class ID for this class (not really public)
|
overridevirtual |
Copies the char16_t array under iteration into the UnicodeString referred to by "result".
Even if this iterator iterates across only a part of this string, the whole string is copied.
result | Receives a copy of the text under iteration. |
Implements icu::CharacterIterator.
Reimplemented in icu::StringCharacterIterator.
|
overridevirtual |
Generates a hash code for this iterator.
Implements icu::ForwardCharacterIterator.
|
overridevirtual |
Returns false if there are no more code units or code points at or after the current position in the iteration range.
This is used with nextPostInc() or next32PostInc() in forward iteration.
Implements icu::ForwardCharacterIterator.
|
overridevirtual |
Returns false if there are no more code units or code points before the current position in the iteration range.
This is used with previous() or previous32() in backward iteration.
Implements icu::CharacterIterator.
|
overridevirtual |
Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit.
This can be used to begin an iteration with previous().
Implements icu::CharacterIterator.
|
overridevirtual |
Sets the iterator to refer to the last code point in its iteration range, and returns that code unit.
This can be used to begin an iteration with previous32().
Implements icu::CharacterIterator.
|
overridevirtual |
Moves the current position relative to the start or end of the iteration range, or relative to the current position itself.
The movement is expressed in numbers of code units forward or backward by specifying a positive or negative delta.
delta | the position relative to origin. A positive delta means forward; a negative delta means backward. |
origin | Origin enumeration {kStart, kCurrent, kEnd} |
Implements icu::CharacterIterator.
|
overridevirtual |
Moves the current position relative to the start or end of the iteration range, or relative to the current position itself.
The movement is expressed in numbers of code points forward or backward by specifying a positive or negative delta.
delta | the position relative to origin. A positive delta means forward; a negative delta means backward. |
origin | Origin enumeration {kStart, kCurrent, kEnd} |
Implements icu::CharacterIterator.
|
overridevirtual |
Advances to the next code unit in the iteration range (toward endIndex()), and returns that code unit.
If there are no more code units to return, returns DONE.
Implements icu::CharacterIterator.
|
overridevirtual |
Advances to the next code point in the iteration range (toward endIndex()), and returns that code point.
If there are no more code points to return, returns DONE. Note that iteration with "pre-increment" semantics is less efficient than iteration with "post-increment" semantics that is provided by next32PostInc().
Implements icu::CharacterIterator.
|
overridevirtual |
Gets the current code point for returning and advances to the next code point in the iteration range (toward endIndex()).
If there are no more code points to return, returns DONE.
Implements icu::ForwardCharacterIterator.
|
overridevirtual |
Gets the current code unit for returning and advances to the next code unit in the iteration range (toward endIndex()).
If there are no more code units to return, returns DONE.
Implements icu::ForwardCharacterIterator.
UCharCharacterIterator & icu::UCharCharacterIterator::operator= | ( | const UCharCharacterIterator & | that | ) |
Assignment operator.
*this is altered to iterate over the sane range of the same string as "that", and refers to the same character within that string as "that" does.
that | The object to be copied |
|
overridevirtual |
Returns true if the iterators iterate over the same range of the same string and are pointing at the same character.
that | The ForwardCharacterIterator used to be compared for equality |
Implements icu::ForwardCharacterIterator.
Reimplemented in icu::StringCharacterIterator.
|
overridevirtual |
Advances to the previous code unit in the iteration range (toward startIndex()), and returns that code unit.
If there are no more code units to return, returns DONE.
Implements icu::CharacterIterator.
|
overridevirtual |
Advances to the previous code point in the iteration range (toward startIndex()), and returns that code point.
If there are no more code points to return, returns DONE.
Implements icu::CharacterIterator.
|
overridevirtual |
Sets the iterator to refer to the "position"-th code unit in the text-storage object the iterator refers to, and returns that code unit.
position | the position within the text-storage object |
Implements icu::CharacterIterator.
|
overridevirtual |
Sets the iterator to refer to the beginning of the code point that contains the "position"-th code unit in the text-storage object the iterator refers to, and returns that code point.
The current position is adjusted to the beginning of the code point (its first code unit).
position | the position within the text-storage object |
Implements icu::CharacterIterator.
void icu::UCharCharacterIterator::setText | ( | ConstChar16Ptr | newText, |
int32_t | newTextLength | ||
) |
Sets the iterator to iterate over a new range of text.
|
protected |