ICU 72.1 72.1
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
icu::StringCharacterIterator Class Reference

A concrete subclass of CharacterIterator that iterates over the characters (code units or code points) in a UnicodeString. More...

#include <schriter.h>

Inheritance diagram for icu::StringCharacterIterator:
icu::UCharCharacterIterator icu::CharacterIterator icu::ForwardCharacterIterator icu::UObject icu::UMemory

Public Member Functions

 StringCharacterIterator (const UnicodeString &textStr)
 Create an iterator over the UnicodeString referred to by "textStr". More...
 
 StringCharacterIterator (const UnicodeString &textStr, int32_t textPos)
 Create an iterator over the UnicodeString referred to by "textStr". More...
 
 StringCharacterIterator (const UnicodeString &textStr, int32_t textBegin, int32_t textEnd, int32_t textPos)
 Create an iterator over the UnicodeString referred to by "textStr". More...
 
 StringCharacterIterator (const StringCharacterIterator &that)
 Copy constructor. More...
 
virtual ~StringCharacterIterator ()
 Destructor. More...
 
StringCharacterIteratoroperator= (const StringCharacterIterator &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 StringCharacterIteratorclone () const override
 Returns a new StringCharacterIterator referring to the same character in the same range of the same string as this one. More...
 
void setText (const UnicodeString &newText)
 Sets the iterator to iterate over the provided string. More...
 
virtual void getText (UnicodeString &result) override
 Copies the UnicodeString 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::UCharCharacterIterator
 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...
 
UCharCharacterIteratoroperator= (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 UCharCharacterIteratorclone () 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 CharacterIteratorclone () 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...
 
- Static Public Member Functions inherited from icu::UCharCharacterIterator
static UClassID getStaticClassID (void)
 Return a class ID for this class (not really public) More...
 

Protected Member Functions

 StringCharacterIterator ()
 Default constructor, iteration over empty string. More...
 
- Protected Member Functions inherited from icu::UCharCharacterIterator
 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...
 
CharacterIteratoroperator= (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...
 
ForwardCharacterIteratoroperator= (const ForwardCharacterIterator &)
 Assignment operator to be overridden in the implementing class. More...
 

Protected Attributes

UnicodeString text
 Copy of the iterated string object. More...
 
- Protected Attributes inherited from icu::UCharCharacterIterator
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...
 

Detailed Description

A concrete subclass of CharacterIterator that iterates over the characters (code units or code points) in a UnicodeString.

It's possible not only to create an iterator that iterates over an entire UnicodeString, but also to create one that iterates over only a subrange of a UnicodeString (iterators over different subranges of the same UnicodeString don't compare equal).

See also
CharacterIterator
ForwardCharacterIterator
Stable:
ICU 2.0

Definition at line 48 of file schriter.h.

Constructor & Destructor Documentation

◆ StringCharacterIterator() [1/5]

icu::StringCharacterIterator::StringCharacterIterator ( const UnicodeString textStr)

Create an iterator over the UnicodeString referred to by "textStr".

The UnicodeString object is copied. The iteration range is the whole string, and the starting position is 0.

Parameters
textStrThe unicode string used to create an iterator
Stable:
ICU 2.0

◆ StringCharacterIterator() [2/5]

icu::StringCharacterIterator::StringCharacterIterator ( const UnicodeString textStr,
int32_t  textPos 
)

Create an iterator over the UnicodeString referred to by "textStr".

The iteration range is the whole string, and the starting position is specified by "textPos". If "textPos" is outside the valid iteration range, the behavior of this object is undefined.

Parameters
textStrThe unicode string used to create an iterator
textPosThe starting position of the iteration
Stable:
ICU 2.0

◆ StringCharacterIterator() [3/5]

icu::StringCharacterIterator::StringCharacterIterator ( const UnicodeString textStr,
int32_t  textBegin,
int32_t  textEnd,
int32_t  textPos 
)

Create an iterator over the UnicodeString referred to by "textStr".

The UnicodeString object is copied. The iteration range begins with the code unit specified by "textBegin" and ends with the code unit BEFORE the code unit specified by "textEnd". The starting position is specified by "textPos". If "textBegin" and "textEnd" don't form a valid range on "text" (i.e., textBegin >= textEnd or either is negative or greater than text.size()), or "textPos" is outside the range defined by "textBegin" and "textEnd", the behavior of this iterator is undefined.

Parameters
textStrThe unicode string used to create the StringCharacterIterator
textBeginThe begin position of the iteration range
textEndThe end position of the iteration range
textPosThe starting position of the iteration
Stable:
ICU 2.0

◆ StringCharacterIterator() [4/5]

icu::StringCharacterIterator::StringCharacterIterator ( const StringCharacterIterator 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. The UnicodeString object in "that" is copied.

Parameters
thatThe StringCharacterIterator to be copied
Stable:
ICU 2.0

◆ ~StringCharacterIterator()

virtual icu::StringCharacterIterator::~StringCharacterIterator ( )
virtual

Destructor.

Stable:
ICU 2.0

◆ StringCharacterIterator() [5/5]

icu::StringCharacterIterator::StringCharacterIterator ( )
protected

Default constructor, iteration over empty string.

Stable:
ICU 2.0

Member Function Documentation

◆ clone()

virtual StringCharacterIterator * icu::StringCharacterIterator::clone ( ) const
overridevirtual

Returns a new StringCharacterIterator referring to the same character in the same range of the same string as this one.

The caller must delete the new iterator.

Returns
the newly cloned object.
Stable:
ICU 2.0

Reimplemented from icu::UCharCharacterIterator.

◆ getDynamicClassID()

virtual UClassID icu::StringCharacterIterator::getDynamicClassID ( void  ) const
overridevirtual

Return a class ID for this object (not really public)

Returns
a class ID for this object.
Stable:
ICU 2.0

Reimplemented from icu::UCharCharacterIterator.

◆ getStaticClassID()

static UClassID icu::StringCharacterIterator::getStaticClassID ( void  )
static

Return a class ID for this class (not really public)

Returns
a class ID for this class
Stable:
ICU 2.0

◆ getText()

virtual void icu::StringCharacterIterator::getText ( UnicodeString result)
overridevirtual

Copies the UnicodeString 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.

Parameters
resultReceives a copy of the text under iteration.
Stable:
ICU 2.0

Reimplemented from icu::UCharCharacterIterator.

◆ operator=()

StringCharacterIterator & icu::StringCharacterIterator::operator= ( const StringCharacterIterator that)

Assignment operator.

*this is altered to iterate over the same range of the same string as "that", and refers to the same character within that string as "that" does.

Parameters
thatThe object to be copied.
Returns
the newly created object.
Stable:
ICU 2.0

◆ operator==()

virtual bool icu::StringCharacterIterator::operator== ( const ForwardCharacterIterator that) const
overridevirtual

Returns true if the iterators iterate over the same range of the same string and are pointing at the same character.

Parameters
thatThe ForwardCharacterIterator to be compared for equality
Returns
true if the iterators iterate over the same range of the same string and are pointing at the same character.
Stable:
ICU 2.0

Reimplemented from icu::UCharCharacterIterator.

◆ setText()

void icu::StringCharacterIterator::setText ( const UnicodeString newText)

Sets the iterator to iterate over the provided string.

Parameters
newTextThe string to be iterated over
Stable:
ICU 2.0

Field Documentation

◆ text

UnicodeString icu::StringCharacterIterator::text
protected

Copy of the iterated string object.

Stable:
ICU 2.0

Definition at line 179 of file schriter.h.


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