# 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 StringCharacterIterator:

## Public Member Functions
| StringCharacterIterator (const UnicodeString &textStr)
| Create an iterator over the UnicodeString referred to by "textStr".
| StringCharacterIterator (const UnicodeString &textStr, int32_t textPos)
| Create an iterator over the UnicodeString referred to by "textStr".
| StringCharacterIterator (const UnicodeString &textStr, int32_t textBegin, int32_t textEnd, int32_t textPos)
| Create an iterator over the UnicodeString referred to by "textStr".
| StringCharacterIterator (const StringCharacterIterator &that)
| Copy constructor.
virtual | ~StringCharacterIterator ()
| Destructor.
StringCharacterIterator & | operator= (const StringCharacterIterator &that)
| Assignment operator.
virtual UBool | operator== (const ForwardCharacterIterator &that) const
| Returns true if the iterators iterate over the same range of the same string and are pointing at the same character.
virtual CharacterIterator * | clone (void) const
| Returns a new StringCharacterIterator referring to the same character in the same range of the same string as this one.
void | setText (const UnicodeString &newText)
| Sets the iterator to iterate over the provided string.
virtual void | getText (UnicodeString &result)
| Copies the UnicodeString under iteration into the UnicodeString referred to by "result".
virtual UClassID | getDynamicClassID (void) const
| Return a class ID for this object (not really public).
## Static Public Member Functions
static UClassID | getStaticClassID (void)
| Return a class ID for this class (not really public).
## Protected Member Functions
| StringCharacterIterator ()
| Default constructor, iteration over empty string.
void | setText (const UChar *newText, int32_t newTextLength)
| Sets the iterator to iterate over the provided string.
## Protected Attributes
UnicodeString | text
| Copy of the iterated string object.

## 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 43 of file schriter.h.

## Constructor & Destructor Documentation

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:

  | textStr | The unicode string used to create an iterator

Stable:
  ICU 2.0

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:

  | textStr | The unicode string used to create an iterator
  | textPos | The starting position of the iteration

Stable:
  ICU 2.0

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 specfied 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:

  | textStr | The unicode string used to create the StringCharacterIterator
  | textBegin | The begin position of the iteration range
  | textEnd | The end position of the iteration range
  | textPos | The starting position of the iteration

Stable:
  ICU 2.0

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:

  | that | The StringCharacterIterator to be copied

Stable:
  ICU 2.0

virtual StringCharacterIterator::~StringCharacterIterator | ( |  | ) | `[virtual]`

Destructor.

Stable:
  ICU 2.0

StringCharacterIterator::StringCharacterIterator | ( |  | ) | `[protected]`

Default constructor, iteration over empty string.

Stable:
  ICU 2.0

## Member Function Documentation

virtual CharacterIterator* StringCharacterIterator::clone | ( | void |  | ) | const`[virtual]`

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 UCharCharacterIterator.

virtual UClassID StringCharacterIterator::getDynamicClassID | ( | void |  | ) | const`[virtual]`

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

Returns:
  a class ID for this object.

Stable:
  ICU 2.0

Reimplemented from UCharCharacterIterator.

static UClassID 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

Reimplemented from UCharCharacterIterator.

virtual void StringCharacterIterator::getText | ( | UnicodeString & | result | ) | `[virtual]`

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:

  | result | Receives a copy of the text under iteration.

Stable:
  ICU 2.0

Reimplemented from UCharCharacterIterator.

StringCharacterIterator& 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:

  | that | The object to be copied.

Returns:
  the newly created object.

Stable:
  ICU 2.0

Reimplemented from UCharCharacterIterator.

virtual UBool StringCharacterIterator::operator== | ( | const ForwardCharacterIterator & | that | ) | const`[virtual]`

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

Parameters:

  | that | The 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 UCharCharacterIterator.

void StringCharacterIterator::setText | ( | const UChar * | newText,
|  | int32_t | newTextLength |
| ) |  |  | `[protected]`

Sets the iterator to iterate over the provided string.

Parameters:

  | newText | The string to be iterated over
  | newTextLength | The length of the String

Stable:
  ICU 2.0

Reimplemented from UCharCharacterIterator.

void StringCharacterIterator::setText | ( | const UnicodeString & | newText | ) |

Sets the iterator to iterate over the provided string.

Parameters:

  | newText | The string to be iterated over

Stable:
  ICU 2.0

## Field Documentation

UnicodeString StringCharacterIterator::text`[protected]`

Copy of the iterated string object.

Stable:
  ICU 2.0

Reimplemented from UCharCharacterIterator.

Definition at line 182 of file schriter.h.

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

- schriter.h

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Friends Defines