<!-- This comment will put IE 6, 7 and 8 in quirks mode --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>ICU 4.4.1: CharacterIterator Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javaScript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body onload='searchBox.OnSelectItem(0);'> <!-- Generated by Doxygen 1.6.2-20100208 --> <script type="text/javascript"><!-- var searchBox = new SearchBox("searchBox", "search",false,'Search'); --></script> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <img id="MSearchSelect" src="search/search.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </div> </li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="classes.html"><span>Data Structure Index</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Data Fields</span></a></li> </ul> </div> </div> <div class="contents"> <h1>CharacterIterator Class Reference</h1><!-- doxytag: class="CharacterIterator" --><!-- doxytag: inherits="ForwardCharacterIterator" --> <p>Abstract class that defines an API for iteration on text objects. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="chariter_8h_source.html">chariter.h</a>></code></p> <div class="dynheader"> Inheritance diagram for CharacterIterator:</div> <div class="dynsection"> <div class="center"> <img src="classCharacterIterator.png" usemap="#CharacterIterator_map" alt=""/> <map id="CharacterIterator_map" name="CharacterIterator_map"> <area href="classForwardCharacterIterator.html" alt="ForwardCharacterIterator" shape="rect" coords="0,112,157,136"/> <area href="classUObject.html" alt="UObject" shape="rect" coords="0,56,157,80"/> <area href="classUMemory.html" alt="UMemory" shape="rect" coords="0,0,157,24"/> <area href="classUCharCharacterIterator.html" alt="UCharCharacterIterator" shape="rect" coords="0,224,157,248"/> <area href="classStringCharacterIterator.html" alt="StringCharacterIterator" shape="rect" coords="0,280,157,304"/> </map> </div> </div> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#aa400f3cff117a0e79ab4246c606c9141">EOrigin</a> { <b>kStart</b>, <b>kCurrent</b>, <b>kEnd</b> }</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Origin enumeration for the <a class="el" href="classCharacterIterator.html#a16d3fd1fd0cd893b48a0a5697192d634" title="Moves the current position relative to the start or end of the iteration range, or...">move()</a> and <a class="el" href="classCharacterIterator.html#a711c44e0d1a4dbe0a191ff8d2e14b73e" title="Moves the current position relative to the start or end of the iteration range, or...">move32()</a> functions. </p> <a href="classCharacterIterator.html#aa400f3cff117a0e79ab4246c606c9141">More...</a><br/></td></tr> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classCharacterIterator.html">CharacterIterator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#adc8a708194960bd2ed640ba8a23e565a">clone</a> (void) const =0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns a pointer to a new <a class="el" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> of the same concrete class as this one, and referring to the same character in the same text-storage object as this one. <a href="#adc8a708194960bd2ed640ba8a23e565a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#afe22aec945697b4459fb4195e1b621c7">first</a> (void)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit. <a href="#afe22aec945697b4459fb4195e1b621c7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#afe620dca9c565e933dca7139ab1f4210">firstPostInc</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">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. <a href="#afe620dca9c565e933dca7139ab1f4210"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a26486be2a3a24bb1634c3279139d549c">first32</a> (void)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">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 <a class="el" href="classCharacterIterator.html#a9521fd47c8637a99776254ee0a0d469e" title="Advances to the next code point in the iteration range (toward endIndex()), and returns...">next32()</a>. <a href="#a26486be2a3a24bb1634c3279139d549c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a9e13e7752a9a3091476ef3d42252bf40">first32PostInc</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">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. <a href="#a9e13e7752a9a3091476ef3d42252bf40"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a70bb6445dc7e7cafbd02852a8100cd9e">setToStart</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the iterator to refer to the first code unit or code point in its iteration range. <a href="#a70bb6445dc7e7cafbd02852a8100cd9e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#ace1cd4d7bad7cd6b302df4beef3640be">last</a> (void)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit. <a href="#ace1cd4d7bad7cd6b302df4beef3640be"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a88c76a273fb1889aa00272fe0965831b">last32</a> (void)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the iterator to refer to the last code point in its iteration range, and returns that code unit. <a href="#a88c76a273fb1889aa00272fe0965831b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a38e0b6be47a35be38fc13172d67005f1">setToEnd</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the iterator to the end of its iteration range, just behind the last code unit or code point. <a href="#a38e0b6be47a35be38fc13172d67005f1"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a0a1fd04a11c18fc3049934b353c431eb">setIndex</a> (int32_t position)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">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. <a href="#a0a1fd04a11c18fc3049934b353c431eb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a380715d71de513e075e3e27d2abe595e">setIndex32</a> (int32_t position)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">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. <a href="#a380715d71de513e075e3e27d2abe595e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a6a481f104f8b9446c1e95ea4c47d8228">current</a> (void) const =0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the code unit the iterator currently refers to. <a href="#a6a481f104f8b9446c1e95ea4c47d8228"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#af2e58620e65172866d073435a3425a11">current32</a> (void) const =0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the code point the iterator currently refers to. <a href="#af2e58620e65172866d073435a3425a11"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a82bd3961ea1e045cbb533633d15ab00d">next</a> (void)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Advances to the next code unit in the iteration range (toward <a class="el" href="classCharacterIterator.html#a3a4f8b46a10f11f0b2d1a393c02d84e0" title="Returns the numeric index in the underlying text-storage object of the position immediately...">endIndex()</a>), and returns that code unit. <a href="#a82bd3961ea1e045cbb533633d15ab00d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a9521fd47c8637a99776254ee0a0d469e">next32</a> (void)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Advances to the next code point in the iteration range (toward <a class="el" href="classCharacterIterator.html#a3a4f8b46a10f11f0b2d1a393c02d84e0" title="Returns the numeric index in the underlying text-storage object of the position immediately...">endIndex()</a>), and returns that code point. <a href="#a9521fd47c8637a99776254ee0a0d469e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a7dfde118a5b6e7755cb4b237c616873f">previous</a> (void)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Advances to the previous code unit in the iteration range (toward <a class="el" href="classCharacterIterator.html#a9183d23e57ab5571c907295f5a45893d" title="Returns the numeric index in the underlying text-storage object of the character...">startIndex()</a>), and returns that code unit. <a href="#a7dfde118a5b6e7755cb4b237c616873f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a9630a5fbd755633cf46c33c3a42c5457">previous32</a> (void)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Advances to the previous code point in the iteration range (toward <a class="el" href="classCharacterIterator.html#a9183d23e57ab5571c907295f5a45893d" title="Returns the numeric index in the underlying text-storage object of the character...">startIndex()</a>), and returns that code point. <a href="#a9630a5fbd755633cf46c33c3a42c5457"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a785a86ae2f1730806eef19595f14d1aa">hasPrevious</a> ()=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns FALSE if there are no more code units or code points before the current position in the iteration range. <a href="#a785a86ae2f1730806eef19595f14d1aa"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a9183d23e57ab5571c907295f5a45893d">startIndex</a> (void) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the numeric index in the underlying text-storage object of the character returned by <a class="el" href="classCharacterIterator.html#afe22aec945697b4459fb4195e1b621c7" title="Sets the iterator to refer to the first code unit in its iteration range, and returns...">first()</a>. <a href="#a9183d23e57ab5571c907295f5a45893d"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a3a4f8b46a10f11f0b2d1a393c02d84e0">endIndex</a> (void) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the numeric index in the underlying text-storage object of the position immediately BEYOND the character returned by <a class="el" href="classCharacterIterator.html#ace1cd4d7bad7cd6b302df4beef3640be" title="Sets the iterator to refer to the last code unit in its iteration range, and returns...">last()</a>. <a href="#a3a4f8b46a10f11f0b2d1a393c02d84e0"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a522cefaae2a07cd2b2f3282e7da60fdb">getIndex</a> (void) const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the numeric index in the underlying text-storage object of the character the iterator currently refers to (i.e., the character returned by <a class="el" href="classCharacterIterator.html#a6a481f104f8b9446c1e95ea4c47d8228" title="Returns the code unit the iterator currently refers to.">current()</a>). <a href="#a522cefaae2a07cd2b2f3282e7da60fdb"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a41436db33a5481117f89b343d47a6e97">getLength</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the length of the entire text in the underlying text-storage object. <a href="#a41436db33a5481117f89b343d47a6e97"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a16d3fd1fd0cd893b48a0a5697192d634">move</a> (int32_t delta, <a class="el" href="classCharacterIterator.html#aa400f3cff117a0e79ab4246c606c9141">EOrigin</a> origin)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Moves the current position relative to the start or end of the iteration range, or relative to the current position itself. <a href="#a16d3fd1fd0cd893b48a0a5697192d634"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a711c44e0d1a4dbe0a191ff8d2e14b73e">move32</a> (int32_t delta, <a class="el" href="classCharacterIterator.html#aa400f3cff117a0e79ab4246c606c9141">EOrigin</a> origin)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Moves the current position relative to the start or end of the iteration range, or relative to the current position itself. <a href="#a711c44e0d1a4dbe0a191ff8d2e14b73e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a03c54d93e6fe1d3be187c67acb957410">getText</a> (<a class="el" href="classUnicodeString.html">UnicodeString</a> &result)=0</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copies the text under iteration into the <a class="el" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> referred to by "result". <a href="#a03c54d93e6fe1d3be187c67acb957410"></a><br/></td></tr> <tr><td colspan="2"><h2>Protected Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a1221d9ac55c0c3dbdc91d4ae667888db">CharacterIterator</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Empty constructor. <a href="#a1221d9ac55c0c3dbdc91d4ae667888db"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a546dee20db39cdee1fae5deab92e67ff">CharacterIterator</a> (int32_t length)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor, just setting the length field in this base class. <a href="#a546dee20db39cdee1fae5deab92e67ff"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a4da97d3afb6b8434eea11823f8eb78d6">CharacterIterator</a> (int32_t length, int32_t position)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor, just setting the length and position fields in this base class. <a href="#a4da97d3afb6b8434eea11823f8eb78d6"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a73d8a50abf33ac9da63c3c9d463ef7ab">CharacterIterator</a> (int32_t length, int32_t textBegin, int32_t textEnd, int32_t position)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor, just setting the length, start, end, and position fields in this base class. <a href="#a73d8a50abf33ac9da63c3c9d463ef7ab"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a5ef75872ea49689d6c75a2597d8028ef">CharacterIterator</a> (const <a class="el" href="classCharacterIterator.html">CharacterIterator</a> &that)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <a href="#a5ef75872ea49689d6c75a2597d8028ef"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCharacterIterator.html">CharacterIterator</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a24bbd0b8ba0893633c7ddac569f5161a">operator=</a> (const <a class="el" href="classCharacterIterator.html">CharacterIterator</a> &that)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Assignment operator. <a href="#a24bbd0b8ba0893633c7ddac569f5161a"></a><br/></td></tr> <tr><td colspan="2"><h2>Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#aa30eb2520df4a1737bb8716b07faebc7">textLength</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Base class text length field. <a href="#aa30eb2520df4a1737bb8716b07faebc7"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#a31cf308271cffffd314e8e93e7e9518e">pos</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Base class field for the current position. <a href="#a31cf308271cffffd314e8e93e7e9518e"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#ac16ef20e110321b0a78a05193d845dbd">begin</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Base class field for the start of the iteration range. <a href="#ac16ef20e110321b0a78a05193d845dbd"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classCharacterIterator.html#afccadd77d7c4440b30816c302ece13d5">end</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Base class field for the end of the iteration range. <a href="#afccadd77d7c4440b30816c302ece13d5"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Abstract class that defines an API for iteration on text objects. </p> <p>This is an interface for forward and backward iteration and random access into a text object.</p> <p>The API provides backward compatibility to the Java and older ICU <a class="el" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> classes but extends them significantly: </p> <ol> <li> <a class="el" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> is now a subclass of <a class="el" href="classForwardCharacterIterator.html" title="Abstract class that defines an API for forward-only iteration on text objects.">ForwardCharacterIterator</a>. </li> <li> While the old API functions provided forward iteration with "pre-increment" semantics, the new one also provides functions with "post-increment" semantics. They are more efficient and should be the preferred iterator functions for new implementations. The backward iteration always had "pre-decrement" semantics, which are efficient. </li> <li> Just like <a class="el" href="classForwardCharacterIterator.html" title="Abstract class that defines an API for forward-only iteration on text objects.">ForwardCharacterIterator</a>, it provides access to both code units and code points. Code point access versions are available for the old and the new iteration semantics. </li> <li> There are new functions for setting and moving the current position without returning a character, for efficiency. </li> </ol> <p>See <a class="el" href="classForwardCharacterIterator.html" title="Abstract class that defines an API for forward-only iteration on text objects.">ForwardCharacterIterator</a> for examples for using the new forward iteration functions. For backward iteration, there is also a <a class="el" href="classCharacterIterator.html#a785a86ae2f1730806eef19595f14d1aa" title="Returns FALSE if there are no more code units or code points before the current position...">hasPrevious()</a> function that can be used analogously to <a class="el" href="classForwardCharacterIterator.html#ab53c28ee0b9ff659983ded76e53f6251" title="Returns FALSE if there are no more code units or code points at or after the current...">hasNext()</a>. The old functions work as before and are shown below.</p> <p>Examples for some of the new functions:</p> <p>Forward iteration with <a class="el" href="classForwardCharacterIterator.html#ab53c28ee0b9ff659983ded76e53f6251" title="Returns FALSE if there are no more code units or code points at or after the current...">hasNext()</a>: </p> <div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> forward1(<a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> &it) { <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c; <span class="keywordflow">for</span>(it.<a class="code" href="classCharacterIterator.html#a70bb6445dc7e7cafbd02852a8100cd9e" title="Sets the iterator to refer to the first code unit or code point in its iteration...">setToStart</a>(); it.<a class="code" href="classForwardCharacterIterator.html#ab53c28ee0b9ff659983ded76e53f6251" title="Returns FALSE if there are no more code units or code points at or after the current...">hasNext</a>();) { c=it.<a class="code" href="classForwardCharacterIterator.html#acb902b4e8c192937270157bb1afca237" title="Gets the current code point for returning and advances to the next code point in...">next32PostInc</a>(); <span class="comment">// use c</span> } } </pre></div><p> Forward iteration more similar to loops with the old forward iteration, showing a way to convert simple for() loops: </p> <div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> forward2(<a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> &it) { <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c; <span class="keywordflow">for</span>(c=it.<a class="code" href="classCharacterIterator.html#afe620dca9c565e933dca7139ab1f4210" title="Sets the iterator to refer to the first code unit in its iteration range, returns...">firstPostInc</a>(); c!=CharacterIterator::DONE; c=it.<a class="code" href="classForwardCharacterIterator.html#a713194d8a27d3f50fe0454b8286921cc" title="Gets the current code unit for returning and advances to the next code unit in the...">nextPostInc</a>()) { <span class="comment">// use c</span> } } </pre></div><p> Backward iteration with <a class="el" href="classCharacterIterator.html#a38e0b6be47a35be38fc13172d67005f1" title="Sets the iterator to the end of its iteration range, just behind the last code unit...">setToEnd()</a> and <a class="el" href="classCharacterIterator.html#a785a86ae2f1730806eef19595f14d1aa" title="Returns FALSE if there are no more code units or code points before the current position...">hasPrevious()</a>: </p> <div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> backward1(<a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> &it) { <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c; <span class="keywordflow">for</span>(it.<a class="code" href="classCharacterIterator.html#a38e0b6be47a35be38fc13172d67005f1" title="Sets the iterator to the end of its iteration range, just behind the last code unit...">setToEnd</a>(); it.<a class="code" href="classCharacterIterator.html#a785a86ae2f1730806eef19595f14d1aa" title="Returns FALSE if there are no more code units or code points before the current position...">hasPrevious</a>();) { c=it.<a class="code" href="classCharacterIterator.html#a9630a5fbd755633cf46c33c3a42c5457" title="Advances to the previous code point in the iteration range (toward startIndex())...">previous32</a>(); <span class="comment">// use c</span> } } </pre></div><p> Backward iteration with a more traditional for() loop: </p> <div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> backward2(<a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> &it) { <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c; <span class="keywordflow">for</span>(c=it.<a class="code" href="classCharacterIterator.html#ace1cd4d7bad7cd6b302df4beef3640be" title="Sets the iterator to refer to the last code unit in its iteration range, and returns...">last</a>(); c!=CharacterIterator::DONE; c=it.<a class="code" href="classCharacterIterator.html#a7dfde118a5b6e7755cb4b237c616873f" title="Advances to the previous code unit in the iteration range (toward startIndex()),...">previous</a>()) { <span class="comment">// use c</span> } } </pre></div><p>Example for random access: </p> <div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> random(<a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> &it) { <span class="comment">// set to the third code point from the beginning</span> it.<a class="code" href="classCharacterIterator.html#a711c44e0d1a4dbe0a191ff8d2e14b73e" title="Moves the current position relative to the start or end of the iteration range, or...">move32</a>(3, CharacterIterator::kStart); <span class="comment">// get a code point from here without moving the position</span> <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c=it.<a class="code" href="classCharacterIterator.html#af2e58620e65172866d073435a3425a11" title="Returns the code point the iterator currently refers to.">current32</a>(); <span class="comment">// get the position</span> int32_t <a class="code" href="classCharacterIterator.html#a31cf308271cffffd314e8e93e7e9518e" title="Base class field for the current position.">pos</a>=it.<a class="code" href="classCharacterIterator.html#a522cefaae2a07cd2b2f3282e7da60fdb" title="Returns the numeric index in the underlying text-storage object of the character...">getIndex</a>(); <span class="comment">// get the previous code unit</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> u=it.<a class="code" href="classCharacterIterator.html#a7dfde118a5b6e7755cb4b237c616873f" title="Advances to the previous code unit in the iteration range (toward startIndex()),...">previous</a>(); <span class="comment">// move back one more code unit</span> it.<a class="code" href="classCharacterIterator.html#a16d3fd1fd0cd893b48a0a5697192d634" title="Moves the current position relative to the start or end of the iteration range, or...">move</a>(-1, CharacterIterator::kCurrent); <span class="comment">// set the position back to where it was</span> <span class="comment">// and read the same code point c and move beyond it</span> it.<a class="code" href="classCharacterIterator.html#a0a1fd04a11c18fc3049934b353c431eb" title="Sets the iterator to refer to the &quot;position&quot;-th code unit in the text-storage...">setIndex</a>(pos); <span class="keywordflow">if</span>(c!=it.<a class="code" href="classForwardCharacterIterator.html#acb902b4e8c192937270157bb1afca237" title="Gets the current code point for returning and advances to the next code point in...">next32PostInc</a>()) { exit(1); <span class="comment">// CharacterIterator inconsistent</span> } } </pre></div><p>Examples, especially for the old API:</p> <p>Function processing characters, in this example simple output </p> <pre> <div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> processChar( <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c ) { cout << <span class="stringliteral">" "</span> << c; } </pre></div> </pre><p> Traverse the text from start to finish </p> <pre> <div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> traverseForward(<a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a>& iter) { <span class="keywordflow">for</span>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c = iter.<a class="code" href="classCharacterIterator.html#afe22aec945697b4459fb4195e1b621c7" title="Sets the iterator to refer to the first code unit in its iteration range, and returns...">first</a>(); c != <a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a>.DONE; c = iter.<a class="code" href="classCharacterIterator.html#a82bd3961ea1e045cbb533633d15ab00d" title="Advances to the next code unit in the iteration range (toward endIndex()), and returns...">next</a>()) { processChar(c); } } </pre></div> </pre><p> Traverse the text backwards, from end to start </p> <pre> <div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> traverseBackward(<a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a>& iter) { <span class="keywordflow">for</span>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c = iter.<a class="code" href="classCharacterIterator.html#ace1cd4d7bad7cd6b302df4beef3640be" title="Sets the iterator to refer to the last code unit in its iteration range, and returns...">last</a>(); c != <a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a>.DONE; c = iter.<a class="code" href="classCharacterIterator.html#a7dfde118a5b6e7755cb4b237c616873f" title="Advances to the previous code unit in the iteration range (toward startIndex()),...">previous</a>()) { processChar(c); } } </pre></div> </pre><p> Traverse both forward and backward from a given position in the text. Calls to notBoundary() in this example represents some additional stopping criteria. </p> <pre> <div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> traverseOut(<a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a>& iter, int32_t pos) { <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> c; <span class="keywordflow">for</span> (c = iter.<a class="code" href="classCharacterIterator.html#a0a1fd04a11c18fc3049934b353c431eb" title="Sets the iterator to refer to the &quot;position&quot;-th code unit in the text-storage...">setIndex</a>(pos); c != <a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a>.DONE && (Unicode::isLetter(c) || Unicode::isDigit(c)); c = iter.<a class="code" href="classCharacterIterator.html#a82bd3961ea1e045cbb533633d15ab00d" title="Advances to the next code unit in the iteration range (toward endIndex()), and returns...">next</a>()) {} int32_t <a class="code" href="classCharacterIterator.html#afccadd77d7c4440b30816c302ece13d5" title="Base class field for the end of the iteration range.">end</a> = iter.<a class="code" href="classCharacterIterator.html#a522cefaae2a07cd2b2f3282e7da60fdb" title="Returns the numeric index in the underlying text-storage object of the character...">getIndex</a>(); <span class="keywordflow">for</span> (c = iter.<a class="code" href="classCharacterIterator.html#a0a1fd04a11c18fc3049934b353c431eb" title="Sets the iterator to refer to the &quot;position&quot;-th code unit in the text-storage...">setIndex</a>(pos); c != <a class="code" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a>.DONE && (Unicode::isLetter(c) || Unicode::isDigit(c)); c = iter.<a class="code" href="classCharacterIterator.html#a7dfde118a5b6e7755cb4b237c616873f" title="Advances to the previous code unit in the iteration range (toward startIndex()),...">previous</a>()) {} int32_t start = iter.<a class="code" href="classCharacterIterator.html#a522cefaae2a07cd2b2f3282e7da60fdb" title="Returns the numeric index in the underlying text-storage object of the character...">getIndex</a>() + 1; cout << <span class="stringliteral">"start: "</span> << start << <span class="stringliteral">" end: "</span> << end << endl; <span class="keywordflow">for</span> (c = iter.<a class="code" href="classCharacterIterator.html#a0a1fd04a11c18fc3049934b353c431eb" title="Sets the iterator to refer to the &quot;position&quot;-th code unit in the text-storage...">setIndex</a>(start); iter.<a class="code" href="classCharacterIterator.html#a522cefaae2a07cd2b2f3282e7da60fdb" title="Returns the numeric index in the underlying text-storage object of the character...">getIndex</a>() < end; c = iter.<a class="code" href="classCharacterIterator.html#a82bd3961ea1e045cbb533633d15ab00d" title="Advances to the next code unit in the iteration range (toward endIndex()), and returns...">next</a>() ) { processChar(c); } } </pre></div> </pre><p> Creating a <a class="el" href="classStringCharacterIterator.html" title="A concrete subclass of CharacterIterator that iterates over the characters (code...">StringCharacterIterator</a> and calling the test functions </p> <pre> <div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> CharacterIterator_Example( <span class="keywordtype">void</span> ) { cout << endl << <span class="stringliteral">"===== CharacterIterator_Example: ====="</span> << endl; <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> text(<span class="stringliteral">"Ein kleiner Satz."</span>); <a class="code" href="classStringCharacterIterator.html" title="A concrete subclass of CharacterIterator that iterates over the characters (code...">StringCharacterIterator</a> iterator(text); cout << <span class="stringliteral">"----- traverseForward: -----------"</span> << endl; traverseForward( iterator ); cout << endl << endl << <span class="stringliteral">"----- traverseBackward: ----------"</span> << endl; traverseBackward( iterator ); cout << endl << endl << <span class="stringliteral">"----- traverseOut: ---------------"</span> << endl; traverseOut( iterator, 7 ); cout << endl << endl << <span class="stringliteral">"-----"</span> << endl; } </pre></div> </pre><dl class="stable"><dt><b><a class="el" href="stable.html#_stable000061">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00356">356</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> <hr/><h2>Member Enumeration Documentation</h2> <a class="anchor" id="aa400f3cff117a0e79ab4246c606c9141"></a><!-- doxytag: member="CharacterIterator::EOrigin" ref="aa400f3cff117a0e79ab4246c606c9141" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classCharacterIterator.html#aa400f3cff117a0e79ab4246c606c9141">CharacterIterator::EOrigin</a></td> </tr> </table> </div> <div class="memdoc"> <p>Origin enumeration for the <a class="el" href="classCharacterIterator.html#a16d3fd1fd0cd893b48a0a5697192d634" title="Moves the current position relative to the start or end of the iteration range, or...">move()</a> and <a class="el" href="classCharacterIterator.html#a711c44e0d1a4dbe0a191ff8d2e14b73e" title="Moves the current position relative to the start or end of the iteration range, or...">move32()</a> functions. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000074">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00362">362</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a1221d9ac55c0c3dbdc91d4ae667888db"></a><!-- doxytag: member="CharacterIterator::CharacterIterator" ref="a1221d9ac55c0c3dbdc91d4ae667888db" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CharacterIterator::CharacterIterator </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Empty constructor. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000100">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <a class="anchor" id="a546dee20db39cdee1fae5deab92e67ff"></a><!-- doxytag: member="CharacterIterator::CharacterIterator" ref="a546dee20db39cdee1fae5deab92e67ff" args="(int32_t length)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CharacterIterator::CharacterIterator </td> <td>(</td> <td class="paramtype">int32_t </td> <td class="paramname"> <em>length</em></td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Constructor, just setting the length field in this base class. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000101">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <a class="anchor" id="a4da97d3afb6b8434eea11823f8eb78d6"></a><!-- doxytag: member="CharacterIterator::CharacterIterator" ref="a4da97d3afb6b8434eea11823f8eb78d6" args="(int32_t length, int32_t position)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CharacterIterator::CharacterIterator </td> <td>(</td> <td class="paramtype">int32_t </td> <td class="paramname"> <em>length</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int32_t </td> <td class="paramname"> <em>position</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Constructor, just setting the length and position fields in this base class. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000102">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <a class="anchor" id="a73d8a50abf33ac9da63c3c9d463ef7ab"></a><!-- doxytag: member="CharacterIterator::CharacterIterator" ref="a73d8a50abf33ac9da63c3c9d463ef7ab" args="(int32_t length, int32_t textBegin, int32_t textEnd, int32_t position)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CharacterIterator::CharacterIterator </td> <td>(</td> <td class="paramtype">int32_t </td> <td class="paramname"> <em>length</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int32_t </td> <td class="paramname"> <em>textBegin</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int32_t </td> <td class="paramname"> <em>textEnd</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int32_t </td> <td class="paramname"> <em>position</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Constructor, just setting the length, start, end, and position fields in this base class. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000103">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <a class="anchor" id="a5ef75872ea49689d6c75a2597d8028ef"></a><!-- doxytag: member="CharacterIterator::CharacterIterator" ref="a5ef75872ea49689d6c75a2597d8028ef" args="(const CharacterIterator &that)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">CharacterIterator::CharacterIterator </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCharacterIterator.html">CharacterIterator</a> & </td> <td class="paramname"> <em>that</em></td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Copy constructor. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>that</em> </td><td>The <a class="el" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> to be copied </td></tr> </table> </dd> </dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000104">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="adc8a708194960bd2ed640ba8a23e565a"></a><!-- doxytag: member="CharacterIterator::clone" ref="adc8a708194960bd2ed640ba8a23e565a" args="(void) const =0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="classCharacterIterator.html">CharacterIterator</a>* CharacterIterator::clone </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td> const<code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns a pointer to a new <a class="el" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> of the same concrete class as this one, and referring to the same character in the same text-storage object as this one. </p> <p>The caller is responsible for deleting the new clone. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>a pointer to a new <a class="el" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000075">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classStringCharacterIterator.html#a63dfbbd9648fc51a2b6ca2aa1547e7bf">StringCharacterIterator</a>, and <a class="el" href="classUCharCharacterIterator.html#ac18052a38fd6f798b35730f9f520670e">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a6a481f104f8b9446c1e95ea4c47d8228"></a><!-- doxytag: member="CharacterIterator::current" ref="a6a481f104f8b9446c1e95ea4c47d8228" args="(void) const =0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> CharacterIterator::current </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td> const<code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the code unit the iterator currently refers to. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the current code unit. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000086">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#a10965f3134514745a6b5e6b5a7cfe112">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="af2e58620e65172866d073435a3425a11"></a><!-- doxytag: member="CharacterIterator::current32" ref="af2e58620e65172866d073435a3425a11" args="(void) const =0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> CharacterIterator::current32 </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td> const<code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the code point the iterator currently refers to. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the current code point. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000087">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#aed9f725320ffd71c3371a9f44678f4b5">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a3a4f8b46a10f11f0b2d1a393c02d84e0"></a><!-- doxytag: member="CharacterIterator::endIndex" ref="a3a4f8b46a10f11f0b2d1a393c02d84e0" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t CharacterIterator::endIndex </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the numeric index in the underlying text-storage object of the position immediately BEYOND the character returned by <a class="el" href="classCharacterIterator.html#ace1cd4d7bad7cd6b302df4beef3640be" title="Sets the iterator to refer to the last code unit in its iteration range, and returns...">last()</a>. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the numeric index in the underlying text-storage object of the position immediately BEYOND the character returned by <a class="el" href="classCharacterIterator.html#ace1cd4d7bad7cd6b302df4beef3640be" title="Sets the iterator to refer to the last code unit in its iteration range, and returns...">last()</a>. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000094">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00701">701</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> <p>References <a class="el" href="chariter_8h_source.html#l00677">end</a>.</p> </div> </div> <a class="anchor" id="afe22aec945697b4459fb4195e1b621c7"></a><!-- doxytag: member="CharacterIterator::first" ref="afe22aec945697b4459fb4195e1b621c7" args="(void)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> CharacterIterator::first </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit. </p> <p>This can be used to begin an iteration with <a class="el" href="classCharacterIterator.html#a82bd3961ea1e045cbb533633d15ab00d" title="Advances to the next code unit in the iteration range (toward endIndex()), and returns...">next()</a>. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the first code unit in its iteration range. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000076">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#a4af76d76056ee67ffa8bf957dadadb46">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a26486be2a3a24bb1634c3279139d549c"></a><!-- doxytag: member="CharacterIterator::first32" ref="a26486be2a3a24bb1634c3279139d549c" args="(void)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> CharacterIterator::first32 </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>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 <a class="el" href="classCharacterIterator.html#a9521fd47c8637a99776254ee0a0d469e" title="Advances to the next code point in the iteration range (toward endIndex()), and returns...">next32()</a>. </p> <p>Note that an iteration with <a class="el" href="classForwardCharacterIterator.html#acb902b4e8c192937270157bb1afca237" title="Gets the current code point for returning and advances to the next code point in...">next32PostInc()</a>, beginning with, e.g., <a class="el" href="classCharacterIterator.html#a70bb6445dc7e7cafbd02852a8100cd9e" title="Sets the iterator to refer to the first code unit or code point in its iteration...">setToStart()</a> or <a class="el" href="classCharacterIterator.html#afe620dca9c565e933dca7139ab1f4210" title="Sets the iterator to refer to the first code unit in its iteration range, returns...">firstPostInc()</a>, is more efficient. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the first code point in its iteration range. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000078">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#a75c44dbee395784ca1bc305c0df5ac0a">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a9e13e7752a9a3091476ef3d42252bf40"></a><!-- doxytag: member="CharacterIterator::first32PostInc" ref="a9e13e7752a9a3091476ef3d42252bf40" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> CharacterIterator::first32PostInc </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>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. </p> <p>This is an alternative to <a class="el" href="classCharacterIterator.html#a70bb6445dc7e7cafbd02852a8100cd9e" title="Sets the iterator to refer to the first code unit or code point in its iteration...">setToStart()</a> for forward iteration with <a class="el" href="classForwardCharacterIterator.html#acb902b4e8c192937270157bb1afca237" title="Gets the current code point for returning and advances to the next code point in...">next32PostInc()</a>. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the first code point in its iteration range. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000079">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Reimplemented in <a class="el" href="classUCharCharacterIterator.html#a939627c8e79d5eeb58866ec4cf50d8e2">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="afe620dca9c565e933dca7139ab1f4210"></a><!-- doxytag: member="CharacterIterator::firstPostInc" ref="afe620dca9c565e933dca7139ab1f4210" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> CharacterIterator::firstPostInc </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>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. </p> <p>This is an alternative to <a class="el" href="classCharacterIterator.html#a70bb6445dc7e7cafbd02852a8100cd9e" title="Sets the iterator to refer to the first code unit or code point in its iteration...">setToStart()</a> for forward iteration with <a class="el" href="classForwardCharacterIterator.html#a713194d8a27d3f50fe0454b8286921cc" title="Gets the current code unit for returning and advances to the next code unit in the...">nextPostInc()</a>. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the first code unit in its iteration range. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000077">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Reimplemented in <a class="el" href="classUCharCharacterIterator.html#a11ab50c4ae556528779a1b3352a66608">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a522cefaae2a07cd2b2f3282e7da60fdb"></a><!-- doxytag: member="CharacterIterator::getIndex" ref="a522cefaae2a07cd2b2f3282e7da60fdb" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t CharacterIterator::getIndex </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the numeric index in the underlying text-storage object of the character the iterator currently refers to (i.e., the character returned by <a class="el" href="classCharacterIterator.html#a6a481f104f8b9446c1e95ea4c47d8228" title="Returns the code unit the iterator currently refers to.">current()</a>). </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the numberic index in the text-storage object of the character the iterator currently refers to </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000095">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00706">706</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> <p>References <a class="el" href="chariter_8h_source.html#l00665">pos</a>.</p> </div> </div> <a class="anchor" id="a41436db33a5481117f89b343d47a6e97"></a><!-- doxytag: member="CharacterIterator::getLength" ref="a41436db33a5481117f89b343d47a6e97" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t CharacterIterator::getLength </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the length of the entire text in the underlying text-storage object. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the length of the entire text in the text-storage object </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000096">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00711">711</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> <p>References <a class="el" href="chariter_8h_source.html#l00659">textLength</a>.</p> </div> </div> <a class="anchor" id="a03c54d93e6fe1d3be187c67acb957410"></a><!-- doxytag: member="CharacterIterator::getText" ref="a03c54d93e6fe1d3be187c67acb957410" args="(UnicodeString &result)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual void CharacterIterator::getText </td> <td>(</td> <td class="paramtype"><a class="el" href="classUnicodeString.html">UnicodeString</a> & </td> <td class="paramname"> <em>result</em></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Copies the text under iteration into the <a class="el" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> referred to by "result". </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>result</em> </td><td>Receives a copy of the text under iteration. </td></tr> </table> </dd> </dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000099">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classStringCharacterIterator.html#a6a7a27b16cade56d95388a7134d86cc0">StringCharacterIterator</a>, and <a class="el" href="classUCharCharacterIterator.html#a09f0d751c4215a06c829d0edee036204">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a785a86ae2f1730806eef19595f14d1aa"></a><!-- doxytag: member="CharacterIterator::hasPrevious" ref="a785a86ae2f1730806eef19595f14d1aa" args="()=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> CharacterIterator::hasPrevious </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns FALSE if there are no more code units or code points before the current position in the iteration range. </p> <p>This is used with <a class="el" href="classCharacterIterator.html#a7dfde118a5b6e7755cb4b237c616873f" title="Advances to the previous code unit in the iteration range (toward startIndex()),...">previous()</a> or <a class="el" href="classCharacterIterator.html#a9630a5fbd755633cf46c33c3a42c5457" title="Advances to the previous code point in the iteration range (toward startIndex())...">previous32()</a> in backward iteration. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>FALSE if there are no more code units or code points before the current position in the iteration range, return TRUE otherwise. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000092">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#a5bbcb759c08029f37eeb1f84aa4cdf93">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="ace1cd4d7bad7cd6b302df4beef3640be"></a><!-- doxytag: member="CharacterIterator::last" ref="ace1cd4d7bad7cd6b302df4beef3640be" args="(void)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> CharacterIterator::last </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit. </p> <p>This can be used to begin an iteration with <a class="el" href="classCharacterIterator.html#a7dfde118a5b6e7755cb4b237c616873f" title="Advances to the previous code unit in the iteration range (toward startIndex()),...">previous()</a>. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the last code unit. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000081">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#a45a39e51e55dfa159281915aa7750470">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a88c76a273fb1889aa00272fe0965831b"></a><!-- doxytag: member="CharacterIterator::last32" ref="a88c76a273fb1889aa00272fe0965831b" args="(void)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> CharacterIterator::last32 </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Sets the iterator to refer to the last code point in its iteration range, and returns that code unit. </p> <p>This can be used to begin an iteration with <a class="el" href="classCharacterIterator.html#a9630a5fbd755633cf46c33c3a42c5457" title="Advances to the previous code point in the iteration range (toward startIndex())...">previous32()</a>. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the last code point. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000082">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#a5797ce9b95f2971323f3ce6d18f78115">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a16d3fd1fd0cd893b48a0a5697192d634"></a><!-- doxytag: member="CharacterIterator::move" ref="a16d3fd1fd0cd893b48a0a5697192d634" args="(int32_t delta, EOrigin origin)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual int32_t CharacterIterator::move </td> <td>(</td> <td class="paramtype">int32_t </td> <td class="paramname"> <em>delta</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCharacterIterator.html#aa400f3cff117a0e79ab4246c606c9141">EOrigin</a> </td> <td class="paramname"> <em>origin</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Moves the current position relative to the start or end of the iteration range, or relative to the current position itself. </p> <p>The movement is expressed in numbers of code units forward or backward by specifying a positive or negative delta. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>delta</em> </td><td>the position relative to origin. A positive delta means forward; a negative delta means backward. </td></tr> <tr><td valign="top"></td><td valign="top"><em>origin</em> </td><td>Origin enumeration {kStart, kCurrent, kEnd} </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the new position </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000097">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#a578c741398b7fa617015fb63dd647916">UCharCharacterIterator</a>.</p> <p>Referenced by <a class="el" href="chariter_8h_source.html#l00691">setToEnd()</a>, and <a class="el" href="chariter_8h_source.html#l00686">setToStart()</a>.</p> </div> </div> <a class="anchor" id="a711c44e0d1a4dbe0a191ff8d2e14b73e"></a><!-- doxytag: member="CharacterIterator::move32" ref="a711c44e0d1a4dbe0a191ff8d2e14b73e" args="(int32_t delta, EOrigin origin)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual int32_t CharacterIterator::move32 </td> <td>(</td> <td class="paramtype">int32_t </td> <td class="paramname"> <em>delta</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="classCharacterIterator.html#aa400f3cff117a0e79ab4246c606c9141">EOrigin</a> </td> <td class="paramname"> <em>origin</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Moves the current position relative to the start or end of the iteration range, or relative to the current position itself. </p> <p>The movement is expressed in numbers of code points forward or backward by specifying a positive or negative delta. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>delta</em> </td><td>the position relative to origin. A positive delta means forward; a negative delta means backward. </td></tr> <tr><td valign="top"></td><td valign="top"><em>origin</em> </td><td>Origin enumeration {kStart, kCurrent, kEnd} </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the new position </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000098">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#a26943e223ac654f34f56ac7b6bce873d">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a82bd3961ea1e045cbb533633d15ab00d"></a><!-- doxytag: member="CharacterIterator::next" ref="a82bd3961ea1e045cbb533633d15ab00d" args="(void)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> CharacterIterator::next </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Advances to the next code unit in the iteration range (toward <a class="el" href="classCharacterIterator.html#a3a4f8b46a10f11f0b2d1a393c02d84e0" title="Returns the numeric index in the underlying text-storage object of the position immediately...">endIndex()</a>), and returns that code unit. </p> <p>If there are no more code units to return, returns DONE. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the next code unit. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000088">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#a111aa9828fb355799cbd44357fd1ed16">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a9521fd47c8637a99776254ee0a0d469e"></a><!-- doxytag: member="CharacterIterator::next32" ref="a9521fd47c8637a99776254ee0a0d469e" args="(void)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> CharacterIterator::next32 </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Advances to the next code point in the iteration range (toward <a class="el" href="classCharacterIterator.html#a3a4f8b46a10f11f0b2d1a393c02d84e0" title="Returns the numeric index in the underlying text-storage object of the position immediately...">endIndex()</a>), and returns that code point. </p> <p>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 <a class="el" href="classForwardCharacterIterator.html#acb902b4e8c192937270157bb1afca237" title="Gets the current code point for returning and advances to the next code point in...">next32PostInc()</a>. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the next code point. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000089">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#a4b98bb816070fdac8751e65e0bcb9d2c">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a24bbd0b8ba0893633c7ddac569f5161a"></a><!-- doxytag: member="CharacterIterator::operator=" ref="a24bbd0b8ba0893633c7ddac569f5161a" args="(const CharacterIterator &that)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classCharacterIterator.html">CharacterIterator</a>& CharacterIterator::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classCharacterIterator.html">CharacterIterator</a> & </td> <td class="paramname"> <em>that</em></td> <td> ) </td> <td><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Assignment operator. </p> <p>Sets this <a class="el" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> to have the same behavior, as the one passed in. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>that</em> </td><td>The <a class="el" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> passed in. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the newly set <a class="el" href="classCharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a>. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000105">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <a class="anchor" id="a7dfde118a5b6e7755cb4b237c616873f"></a><!-- doxytag: member="CharacterIterator::previous" ref="a7dfde118a5b6e7755cb4b237c616873f" args="(void)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> CharacterIterator::previous </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Advances to the previous code unit in the iteration range (toward <a class="el" href="classCharacterIterator.html#a9183d23e57ab5571c907295f5a45893d" title="Returns the numeric index in the underlying text-storage object of the character...">startIndex()</a>), and returns that code unit. </p> <p>If there are no more code units to return, returns DONE. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the previous code unit. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000090">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#ac4e824a93673b3f42614b74dbefacece">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a9630a5fbd755633cf46c33c3a42c5457"></a><!-- doxytag: member="CharacterIterator::previous32" ref="a9630a5fbd755633cf46c33c3a42c5457" args="(void)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> CharacterIterator::previous32 </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Advances to the previous code point in the iteration range (toward <a class="el" href="classCharacterIterator.html#a9183d23e57ab5571c907295f5a45893d" title="Returns the numeric index in the underlying text-storage object of the character...">startIndex()</a>), and returns that code point. </p> <p>If there are no more code points to return, returns DONE. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the previous code point. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000091">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#aa01e7b0113a3a0ba158e869ee5aa8fc5">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a0a1fd04a11c18fc3049934b353c431eb"></a><!-- doxytag: member="CharacterIterator::setIndex" ref="a0a1fd04a11c18fc3049934b353c431eb" args="(int32_t position)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> CharacterIterator::setIndex </td> <td>(</td> <td class="paramtype">int32_t </td> <td class="paramname"> <em>position</em></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>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. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>position</em> </td><td>the "position"-th code unit in the text-storage object </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the "position"-th code unit. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000084">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#a92b670d7eb8675c9198ee5cfabaec9fd">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a380715d71de513e075e3e27d2abe595e"></a><!-- doxytag: member="CharacterIterator::setIndex32" ref="a380715d71de513e075e3e27d2abe595e" args="(int32_t position)=0" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> CharacterIterator::setIndex32 </td> <td>(</td> <td class="paramtype">int32_t </td> <td class="paramname"> <em>position</em></td> <td> ) </td> <td><code> [pure virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>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. </p> <p>The current position is adjusted to the beginning of the code point (its first code unit). </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>position</em> </td><td>the "position"-th code unit in the text-storage object </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>the "position"-th code point. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000085">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classUCharCharacterIterator.html#ab6cc35d39638235e83782fdc11ecca93">UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a38e0b6be47a35be38fc13172d67005f1"></a><!-- doxytag: member="CharacterIterator::setToEnd" ref="a38e0b6be47a35be38fc13172d67005f1" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t CharacterIterator::setToEnd </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Sets the iterator to the end of its iteration range, just behind the last code unit or code point. </p> <p>This can be used to begin a backward iteration with <a class="el" href="classCharacterIterator.html#a7dfde118a5b6e7755cb4b237c616873f" title="Advances to the previous code unit in the iteration range (toward startIndex()),...">previous()</a> or <a class="el" href="classCharacterIterator.html#a9630a5fbd755633cf46c33c3a42c5457" title="Advances to the previous code point in the iteration range (toward startIndex())...">previous32()</a>. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the end position of the iteration range </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000083">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00691">691</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> <p>References <a class="el" href="classCharacterIterator.html#a16d3fd1fd0cd893b48a0a5697192d634">move()</a>.</p> </div> </div> <a class="anchor" id="a70bb6445dc7e7cafbd02852a8100cd9e"></a><!-- doxytag: member="CharacterIterator::setToStart" ref="a70bb6445dc7e7cafbd02852a8100cd9e" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t CharacterIterator::setToStart </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Sets the iterator to refer to the first code unit or code point in its iteration range. </p> <p>This can be used to begin a forward iteration with <a class="el" href="classForwardCharacterIterator.html#a713194d8a27d3f50fe0454b8286921cc" title="Gets the current code unit for returning and advances to the next code unit in the...">nextPostInc()</a> or <a class="el" href="classForwardCharacterIterator.html#acb902b4e8c192937270157bb1afca237" title="Gets the current code point for returning and advances to the next code point in...">next32PostInc()</a>. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the start position of the iteration range </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000080">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00686">686</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> <p>References <a class="el" href="classCharacterIterator.html#a16d3fd1fd0cd893b48a0a5697192d634">move()</a>.</p> </div> </div> <a class="anchor" id="a9183d23e57ab5571c907295f5a45893d"></a><!-- doxytag: member="CharacterIterator::startIndex" ref="a9183d23e57ab5571c907295f5a45893d" args="(void) const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t CharacterIterator::startIndex </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the numeric index in the underlying text-storage object of the character returned by <a class="el" href="classCharacterIterator.html#afe22aec945697b4459fb4195e1b621c7" title="Sets the iterator to refer to the first code unit in its iteration range, and returns...">first()</a>. </p> <p>Since it's possible to create an iterator that iterates across only part of a text-storage object, this number isn't necessarily 0. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>the numeric index in the underlying text-storage object of the character returned by <a class="el" href="classCharacterIterator.html#afe22aec945697b4459fb4195e1b621c7" title="Sets the iterator to refer to the first code unit in its iteration range, and returns...">first()</a>. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000093">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00696">696</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> <p>References <a class="el" href="chariter_8h_source.html#l00671">begin</a>.</p> </div> </div> <hr/><h2>Field Documentation</h2> <a class="anchor" id="ac16ef20e110321b0a78a05193d845dbd"></a><!-- doxytag: member="CharacterIterator::begin" ref="ac16ef20e110321b0a78a05193d845dbd" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t <a class="el" href="classCharacterIterator.html#ac16ef20e110321b0a78a05193d845dbd">CharacterIterator::begin</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Base class field for the start of the iteration range. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000108">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00671">671</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> <p>Referenced by <a class="el" href="chariter_8h_source.html#l00696">startIndex()</a>.</p> </div> </div> <a class="anchor" id="afccadd77d7c4440b30816c302ece13d5"></a><!-- doxytag: member="CharacterIterator::end" ref="afccadd77d7c4440b30816c302ece13d5" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t <a class="el" href="classCharacterIterator.html#afccadd77d7c4440b30816c302ece13d5">CharacterIterator::end</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Base class field for the end of the iteration range. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000109">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00677">677</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> <p>Referenced by <a class="el" href="chariter_8h_source.html#l00701">endIndex()</a>.</p> </div> </div> <a class="anchor" id="a31cf308271cffffd314e8e93e7e9518e"></a><!-- doxytag: member="CharacterIterator::pos" ref="a31cf308271cffffd314e8e93e7e9518e" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t <a class="el" href="classCharacterIterator.html#a31cf308271cffffd314e8e93e7e9518e">CharacterIterator::pos</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Base class field for the current position. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000107">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00665">665</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> <p>Referenced by <a class="el" href="chariter_8h_source.html#l00706">getIndex()</a>.</p> </div> </div> <a class="anchor" id="aa30eb2520df4a1737bb8716b07faebc7"></a><!-- doxytag: member="CharacterIterator::textLength" ref="aa30eb2520df4a1737bb8716b07faebc7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int32_t <a class="el" href="classCharacterIterator.html#aa30eb2520df4a1737bb8716b07faebc7">CharacterIterator::textLength</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Base class text length field. </p> <p>Necessary this for correct <a class="el" href="classCharacterIterator.html#a03c54d93e6fe1d3be187c67acb957410" title="Copies the text under iteration into the UnicodeString referred to by "result"...">getText()</a> and <a class="el" href="classForwardCharacterIterator.html#a0b9696ca3d4d27b22a2744a2c498b4d7" title="Generates a hash code for this iterator.">hashCode()</a>. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000106">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00659">659</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> <p>Referenced by <a class="el" href="chariter_8h_source.html#l00711">getLength()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="chariter_8h_source.html">chariter.h</a></li> </ul> </div> <!--- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Defines</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <hr class="footer"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2-20100208 </small></address> </body> </html>