<!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"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.11"/> <title>ICU 58.2: icu::CharacterIterator Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">ICU 58.2  <span id="projectnumber">58.2</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.11 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <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><a href="namespaces.html"><span>Namespaces</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> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <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 id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespaceicu.html">icu</a></li><li class="navelem"><a class="el" href="classicu_1_1CharacterIterator.html">CharacterIterator</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-methods">Protected Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> </div> <div class="headertitle"> <div class="title">icu::CharacterIterator Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div> </div><!--header--> <div class="contents"> <p>Abstract class that defines an API for iteration on text objects. <a href="classicu_1_1CharacterIterator.html#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 icu::CharacterIterator:</div> <div class="dyncontent"> <div class="center"> <img src="classicu_1_1CharacterIterator.png" usemap="#icu::CharacterIterator_map" alt=""/> <map id="icu::CharacterIterator_map" name="icu::CharacterIterator_map"> <area href="classicu_1_1ForwardCharacterIterator.html" title="Abstract class that defines an API for forward-only iteration on text objects. " alt="icu::ForwardCharacterIterator" shape="rect" coords="0,112,180,136"/> <area href="classicu_1_1UObject.html" title="UObject is the common ICU "boilerplate" class. " alt="icu::UObject" shape="rect" coords="0,56,180,80"/> <area href="classicu_1_1UMemory.html" title="UMemory is the common ICU base class. " alt="icu::UMemory" shape="rect" coords="0,0,180,24"/> <area href="classicu_1_1UCharCharacterIterator.html" title="A concrete subclass of CharacterIterator that iterates over the characters (code units or code points..." alt="icu::UCharCharacterIterator" shape="rect" coords="0,224,180,248"/> <area href="classicu_1_1StringCharacterIterator.html" title="A concrete subclass of CharacterIterator that iterates over the characters (code units or code points..." alt="icu::StringCharacterIterator" shape="rect" coords="0,280,180,304"/> </map> </div></div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a> Public Types</h2></td></tr> <tr class="memitem:a065aff1d713f7659faba4951d16f5f38"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#a065aff1d713f7659faba4951d16f5f38">EOrigin</a> { <b>kStart</b>, <b>kCurrent</b>, <b>kEnd</b> }<tr class="memdesc:a065aff1d713f7659faba4951d16f5f38"><td class="mdescLeft"> </td><td class="mdescRight">Origin enumeration for the <a class="el" href="classicu_1_1CharacterIterator.html#a37e9b91a0bd0e9dde2761b603560da9d" title="Moves the current position relative to the start or end of the iteration range, or relative to the cu...">move()</a> and <a class="el" href="classicu_1_1CharacterIterator.html#aac9a417f50cd4d741da7fac3429dad0d" title="Moves the current position relative to the start or end of the iteration range, or relative to the cu...">move32()</a> functions. <a href="classicu_1_1CharacterIterator.html#a065aff1d713f7659faba4951d16f5f38">More...</a><br /></td></tr> </td></tr> <tr class="separator:a065aff1d713f7659faba4951d16f5f38"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_types_classicu_1_1ForwardCharacterIterator"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classicu_1_1ForwardCharacterIterator')"><img src="closed.png" alt="-"/> Public Types inherited from <a class="el" href="classicu_1_1ForwardCharacterIterator.html">icu::ForwardCharacterIterator</a></td></tr> <tr class="memitem:adbacb49f483a870aefb8e518cc8105c7 inherit pub_types_classicu_1_1ForwardCharacterIterator"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <b>DONE</b> = 0xffff }<tr class="memdesc:adbacb49f483a870aefb8e518cc8105c7"><td class="mdescLeft"> </td><td class="mdescRight">Value returned by most of <a class="el" href="classicu_1_1ForwardCharacterIterator.html" title="Abstract class that defines an API for forward-only iteration on text objects. ">ForwardCharacterIterator</a>'s functions when the iterator has reached the limits of its iteration. <a href="classicu_1_1ForwardCharacterIterator.html#adbacb49f483a870aefb8e518cc8105c7">More...</a><br /></td></tr> </td></tr> <tr class="separator:adbacb49f483a870aefb8e518cc8105c7 inherit pub_types_classicu_1_1ForwardCharacterIterator"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr class="memitem:a6f02b160cc84f55de41adc72cbb9b9ed"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#a6f02b160cc84f55de41adc72cbb9b9ed">~CharacterIterator</a> ()</td></tr> <tr class="memdesc:a6f02b160cc84f55de41adc72cbb9b9ed"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#a6f02b160cc84f55de41adc72cbb9b9ed">More...</a><br /></td></tr> <tr class="separator:a6f02b160cc84f55de41adc72cbb9b9ed"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8b3d69e0cbc3a22f7fc87f78b78c7ca2"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classicu_1_1CharacterIterator.html">CharacterIterator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#a8b3d69e0cbc3a22f7fc87f78b78c7ca2">clone</a> (void) const =0</td></tr> <tr class="memdesc:a8b3d69e0cbc3a22f7fc87f78b78c7ca2"><td class="mdescLeft"> </td><td class="mdescRight">Returns a pointer to a new <a class="el" href="classicu_1_1CharacterIterator.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="#a8b3d69e0cbc3a22f7fc87f78b78c7ca2">More...</a><br /></td></tr> <tr class="separator:a8b3d69e0cbc3a22f7fc87f78b78c7ca2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2434e2d9d5436d1e17c093f5d39ef9eb"><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="classicu_1_1CharacterIterator.html#a2434e2d9d5436d1e17c093f5d39ef9eb">first</a> (void)=0</td></tr> <tr class="memdesc:a2434e2d9d5436d1e17c093f5d39ef9eb"><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="#a2434e2d9d5436d1e17c093f5d39ef9eb">More...</a><br /></td></tr> <tr class="separator:a2434e2d9d5436d1e17c093f5d39ef9eb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1e17d5547a23329c13429024cae7271a"><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="classicu_1_1CharacterIterator.html#a1e17d5547a23329c13429024cae7271a">firstPostInc</a> (void)</td></tr> <tr class="memdesc:a1e17d5547a23329c13429024cae7271a"><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="#a1e17d5547a23329c13429024cae7271a">More...</a><br /></td></tr> <tr class="separator:a1e17d5547a23329c13429024cae7271a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a89548cc913bf599865c9098638a9c2e7"><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="classicu_1_1CharacterIterator.html#a89548cc913bf599865c9098638a9c2e7">first32</a> (void)=0</td></tr> <tr class="memdesc:a89548cc913bf599865c9098638a9c2e7"><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="classicu_1_1CharacterIterator.html#a6e9a84b89a0d3fe7aae189f744576b00" title="Advances to the next code point in the iteration range (toward endIndex()), and returns that code poi...">next32()</a>. <a href="#a89548cc913bf599865c9098638a9c2e7">More...</a><br /></td></tr> <tr class="separator:a89548cc913bf599865c9098638a9c2e7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a10b0383da1187bb22b46412ca46da1f4"><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="classicu_1_1CharacterIterator.html#a10b0383da1187bb22b46412ca46da1f4">first32PostInc</a> (void)</td></tr> <tr class="memdesc:a10b0383da1187bb22b46412ca46da1f4"><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="#a10b0383da1187bb22b46412ca46da1f4">More...</a><br /></td></tr> <tr class="separator:a10b0383da1187bb22b46412ca46da1f4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac6e8c16981c7481256c50ab7145185aa"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#ac6e8c16981c7481256c50ab7145185aa">setToStart</a> ()</td></tr> <tr class="memdesc:ac6e8c16981c7481256c50ab7145185aa"><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="#ac6e8c16981c7481256c50ab7145185aa">More...</a><br /></td></tr> <tr class="separator:ac6e8c16981c7481256c50ab7145185aa"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3e1b89449404ca3b73798f9f8abe33e9"><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="classicu_1_1CharacterIterator.html#a3e1b89449404ca3b73798f9f8abe33e9">last</a> (void)=0</td></tr> <tr class="memdesc:a3e1b89449404ca3b73798f9f8abe33e9"><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="#a3e1b89449404ca3b73798f9f8abe33e9">More...</a><br /></td></tr> <tr class="separator:a3e1b89449404ca3b73798f9f8abe33e9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a86fc3990c224e4df431e6b93bb757298"><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="classicu_1_1CharacterIterator.html#a86fc3990c224e4df431e6b93bb757298">last32</a> (void)=0</td></tr> <tr class="memdesc:a86fc3990c224e4df431e6b93bb757298"><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="#a86fc3990c224e4df431e6b93bb757298">More...</a><br /></td></tr> <tr class="separator:a86fc3990c224e4df431e6b93bb757298"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac5cff21d4826f4f655303de8fecb5ce5"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#ac5cff21d4826f4f655303de8fecb5ce5">setToEnd</a> ()</td></tr> <tr class="memdesc:ac5cff21d4826f4f655303de8fecb5ce5"><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="#ac5cff21d4826f4f655303de8fecb5ce5">More...</a><br /></td></tr> <tr class="separator:ac5cff21d4826f4f655303de8fecb5ce5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4a89b0d0cc85fcaad5c0e1c3e75da928"><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="classicu_1_1CharacterIterator.html#a4a89b0d0cc85fcaad5c0e1c3e75da928">setIndex</a> (int32_t position)=0</td></tr> <tr class="memdesc:a4a89b0d0cc85fcaad5c0e1c3e75da928"><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="#a4a89b0d0cc85fcaad5c0e1c3e75da928">More...</a><br /></td></tr> <tr class="separator:a4a89b0d0cc85fcaad5c0e1c3e75da928"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8519987104888e1af043b146971b6793"><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="classicu_1_1CharacterIterator.html#a8519987104888e1af043b146971b6793">setIndex32</a> (int32_t position)=0</td></tr> <tr class="memdesc:a8519987104888e1af043b146971b6793"><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="#a8519987104888e1af043b146971b6793">More...</a><br /></td></tr> <tr class="separator:a8519987104888e1af043b146971b6793"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7c40738625fe775ef8d07e166ac5ca54"><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="classicu_1_1CharacterIterator.html#a7c40738625fe775ef8d07e166ac5ca54">current</a> (void) const =0</td></tr> <tr class="memdesc:a7c40738625fe775ef8d07e166ac5ca54"><td class="mdescLeft"> </td><td class="mdescRight">Returns the code unit the iterator currently refers to. <a href="#a7c40738625fe775ef8d07e166ac5ca54">More...</a><br /></td></tr> <tr class="separator:a7c40738625fe775ef8d07e166ac5ca54"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a946220338dce1cb3151ef3dbd6a7c943"><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="classicu_1_1CharacterIterator.html#a946220338dce1cb3151ef3dbd6a7c943">current32</a> (void) const =0</td></tr> <tr class="memdesc:a946220338dce1cb3151ef3dbd6a7c943"><td class="mdescLeft"> </td><td class="mdescRight">Returns the code point the iterator currently refers to. <a href="#a946220338dce1cb3151ef3dbd6a7c943">More...</a><br /></td></tr> <tr class="separator:a946220338dce1cb3151ef3dbd6a7c943"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5ba065caa3c0af49f3683dcebde6000e"><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="classicu_1_1CharacterIterator.html#a5ba065caa3c0af49f3683dcebde6000e">next</a> (void)=0</td></tr> <tr class="memdesc:a5ba065caa3c0af49f3683dcebde6000e"><td class="mdescLeft"> </td><td class="mdescRight">Advances to the next code unit in the iteration range (toward <a class="el" href="classicu_1_1CharacterIterator.html#acb9498db4285d26d9bfaccb73f688f65" title="Returns the numeric index in the underlying text-storage object of the position immediately BEYOND th...">endIndex()</a>), and returns that code unit. <a href="#a5ba065caa3c0af49f3683dcebde6000e">More...</a><br /></td></tr> <tr class="separator:a5ba065caa3c0af49f3683dcebde6000e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a6e9a84b89a0d3fe7aae189f744576b00"><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="classicu_1_1CharacterIterator.html#a6e9a84b89a0d3fe7aae189f744576b00">next32</a> (void)=0</td></tr> <tr class="memdesc:a6e9a84b89a0d3fe7aae189f744576b00"><td class="mdescLeft"> </td><td class="mdescRight">Advances to the next code point in the iteration range (toward <a class="el" href="classicu_1_1CharacterIterator.html#acb9498db4285d26d9bfaccb73f688f65" title="Returns the numeric index in the underlying text-storage object of the position immediately BEYOND th...">endIndex()</a>), and returns that code point. <a href="#a6e9a84b89a0d3fe7aae189f744576b00">More...</a><br /></td></tr> <tr class="separator:a6e9a84b89a0d3fe7aae189f744576b00"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a23965d8aaf700f570f97846700f607e2"><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="classicu_1_1CharacterIterator.html#a23965d8aaf700f570f97846700f607e2">previous</a> (void)=0</td></tr> <tr class="memdesc:a23965d8aaf700f570f97846700f607e2"><td class="mdescLeft"> </td><td class="mdescRight">Advances to the previous code unit in the iteration range (toward <a class="el" href="classicu_1_1CharacterIterator.html#a997669c2389aede36fd4402cc1331310" title="Returns the numeric index in the underlying text-storage object of the character returned by first()...">startIndex()</a>), and returns that code unit. <a href="#a23965d8aaf700f570f97846700f607e2">More...</a><br /></td></tr> <tr class="separator:a23965d8aaf700f570f97846700f607e2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa4e10820fbdb4dda83464e4bb629cbdb"><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="classicu_1_1CharacterIterator.html#aa4e10820fbdb4dda83464e4bb629cbdb">previous32</a> (void)=0</td></tr> <tr class="memdesc:aa4e10820fbdb4dda83464e4bb629cbdb"><td class="mdescLeft"> </td><td class="mdescRight">Advances to the previous code point in the iteration range (toward <a class="el" href="classicu_1_1CharacterIterator.html#a997669c2389aede36fd4402cc1331310" title="Returns the numeric index in the underlying text-storage object of the character returned by first()...">startIndex()</a>), and returns that code point. <a href="#aa4e10820fbdb4dda83464e4bb629cbdb">More...</a><br /></td></tr> <tr class="separator:aa4e10820fbdb4dda83464e4bb629cbdb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac83ac180f319b25a9e6ab1a80d66d928"><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="classicu_1_1CharacterIterator.html#ac83ac180f319b25a9e6ab1a80d66d928">hasPrevious</a> ()=0</td></tr> <tr class="memdesc:ac83ac180f319b25a9e6ab1a80d66d928"><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="#ac83ac180f319b25a9e6ab1a80d66d928">More...</a><br /></td></tr> <tr class="separator:ac83ac180f319b25a9e6ab1a80d66d928"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a997669c2389aede36fd4402cc1331310"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#a997669c2389aede36fd4402cc1331310">startIndex</a> (void) const </td></tr> <tr class="memdesc:a997669c2389aede36fd4402cc1331310"><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="classicu_1_1CharacterIterator.html#a2434e2d9d5436d1e17c093f5d39ef9eb" title="Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit...">first()</a>. <a href="#a997669c2389aede36fd4402cc1331310">More...</a><br /></td></tr> <tr class="separator:a997669c2389aede36fd4402cc1331310"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acb9498db4285d26d9bfaccb73f688f65"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#acb9498db4285d26d9bfaccb73f688f65">endIndex</a> (void) const </td></tr> <tr class="memdesc:acb9498db4285d26d9bfaccb73f688f65"><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="classicu_1_1CharacterIterator.html#a3e1b89449404ca3b73798f9f8abe33e9" title="Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit...">last()</a>. <a href="#acb9498db4285d26d9bfaccb73f688f65">More...</a><br /></td></tr> <tr class="separator:acb9498db4285d26d9bfaccb73f688f65"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a64840e056163f5ddd38dab521f81f10c"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#a64840e056163f5ddd38dab521f81f10c">getIndex</a> (void) const </td></tr> <tr class="memdesc:a64840e056163f5ddd38dab521f81f10c"><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="classicu_1_1CharacterIterator.html#a7c40738625fe775ef8d07e166ac5ca54" title="Returns the code unit the iterator currently refers to. ">current()</a>). <a href="#a64840e056163f5ddd38dab521f81f10c">More...</a><br /></td></tr> <tr class="separator:a64840e056163f5ddd38dab521f81f10c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa68593f788c2eeaae5c1237191e7a2ae"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#aa68593f788c2eeaae5c1237191e7a2ae">getLength</a> () const </td></tr> <tr class="memdesc:aa68593f788c2eeaae5c1237191e7a2ae"><td class="mdescLeft"> </td><td class="mdescRight">Returns the length of the entire text in the underlying text-storage object. <a href="#aa68593f788c2eeaae5c1237191e7a2ae">More...</a><br /></td></tr> <tr class="separator:aa68593f788c2eeaae5c1237191e7a2ae"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a37e9b91a0bd0e9dde2761b603560da9d"><td class="memItemLeft" align="right" valign="top">virtual int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#a37e9b91a0bd0e9dde2761b603560da9d">move</a> (int32_t delta, <a class="el" href="classicu_1_1CharacterIterator.html#a065aff1d713f7659faba4951d16f5f38">EOrigin</a> origin)=0</td></tr> <tr class="memdesc:a37e9b91a0bd0e9dde2761b603560da9d"><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="#a37e9b91a0bd0e9dde2761b603560da9d">More...</a><br /></td></tr> <tr class="separator:a37e9b91a0bd0e9dde2761b603560da9d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aac9a417f50cd4d741da7fac3429dad0d"><td class="memItemLeft" align="right" valign="top">virtual int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#aac9a417f50cd4d741da7fac3429dad0d">move32</a> (int32_t delta, <a class="el" href="classicu_1_1CharacterIterator.html#a065aff1d713f7659faba4951d16f5f38">EOrigin</a> origin)=0</td></tr> <tr class="memdesc:aac9a417f50cd4d741da7fac3429dad0d"><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="#aac9a417f50cd4d741da7fac3429dad0d">More...</a><br /></td></tr> <tr class="separator:aac9a417f50cd4d741da7fac3429dad0d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a2a71011a2d6f91c7f4ca2c1a2fe6fc7f"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#a2a71011a2d6f91c7f4ca2c1a2fe6fc7f">getText</a> (<a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> &result)=0</td></tr> <tr class="memdesc:a2a71011a2d6f91c7f4ca2c1a2fe6fc7f"><td class="mdescLeft"> </td><td class="mdescRight">Copies the text under iteration into the <a class="el" href="classicu_1_1UnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides similar function...">UnicodeString</a> referred to by "result". <a href="#a2a71011a2d6f91c7f4ca2c1a2fe6fc7f">More...</a><br /></td></tr> <tr class="separator:a2a71011a2d6f91c7f4ca2c1a2fe6fc7f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_classicu_1_1ForwardCharacterIterator"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classicu_1_1ForwardCharacterIterator')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classicu_1_1ForwardCharacterIterator.html">icu::ForwardCharacterIterator</a></td></tr> <tr class="memitem:a0efde315650556664036dcd16cbe2722 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1ForwardCharacterIterator.html#a0efde315650556664036dcd16cbe2722">~ForwardCharacterIterator</a> ()</td></tr> <tr class="memdesc:a0efde315650556664036dcd16cbe2722 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#a0efde315650556664036dcd16cbe2722">More...</a><br /></td></tr> <tr class="separator:a0efde315650556664036dcd16cbe2722 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4e1959cb4b14d3a5f3ad18b557fac40f inherit pub_methods_classicu_1_1ForwardCharacterIterator"><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="classicu_1_1ForwardCharacterIterator.html#a4e1959cb4b14d3a5f3ad18b557fac40f">operator==</a> (const <a class="el" href="classicu_1_1ForwardCharacterIterator.html">ForwardCharacterIterator</a> &that) const =0</td></tr> <tr class="memdesc:a4e1959cb4b14d3a5f3ad18b557fac40f inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="mdescLeft"> </td><td class="mdescRight">Returns true when both iterators refer to the same character in the same character-storage object. <a href="#a4e1959cb4b14d3a5f3ad18b557fac40f">More...</a><br /></td></tr> <tr class="separator:a4e1959cb4b14d3a5f3ad18b557fac40f inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a9572cc0daaa3810b69c366a05d922a2f inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="memItemLeft" align="right" valign="top"><a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1ForwardCharacterIterator.html#a9572cc0daaa3810b69c366a05d922a2f">operator!=</a> (const <a class="el" href="classicu_1_1ForwardCharacterIterator.html">ForwardCharacterIterator</a> &that) const </td></tr> <tr class="memdesc:a9572cc0daaa3810b69c366a05d922a2f inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="mdescLeft"> </td><td class="mdescRight">Returns true when the iterators refer to different text-storage objects, or to different characters in the same text-storage object. <a href="#a9572cc0daaa3810b69c366a05d922a2f">More...</a><br /></td></tr> <tr class="separator:a9572cc0daaa3810b69c366a05d922a2f inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab5ca36cca044f5ea8a033c7a359d83a2 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="memItemLeft" align="right" valign="top">virtual int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1ForwardCharacterIterator.html#ab5ca36cca044f5ea8a033c7a359d83a2">hashCode</a> (void) const =0</td></tr> <tr class="memdesc:ab5ca36cca044f5ea8a033c7a359d83a2 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="mdescLeft"> </td><td class="mdescRight">Generates a hash code for this iterator. <a href="#ab5ca36cca044f5ea8a033c7a359d83a2">More...</a><br /></td></tr> <tr class="separator:ab5ca36cca044f5ea8a033c7a359d83a2 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a595cb66f4bf27c7591d0ca51f8587ab0 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="uobject_8h.html#a22af10545208a455a6e884008df48e9f">UClassID</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1ForwardCharacterIterator.html#a595cb66f4bf27c7591d0ca51f8587ab0">getDynamicClassID</a> (void) const =0</td></tr> <tr class="memdesc:a595cb66f4bf27c7591d0ca51f8587ab0 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="mdescLeft"> </td><td class="mdescRight">Returns a UClassID for this <a class="el" href="classicu_1_1ForwardCharacterIterator.html" title="Abstract class that defines an API for forward-only iteration on text objects. ">ForwardCharacterIterator</a> ("poor man's RTTI"). <a href="#a595cb66f4bf27c7591d0ca51f8587ab0">More...</a><br /></td></tr> <tr class="separator:a595cb66f4bf27c7591d0ca51f8587ab0 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adeb1b03f3f09ae322c73bf687d5c3f75 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><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="classicu_1_1ForwardCharacterIterator.html#adeb1b03f3f09ae322c73bf687d5c3f75">nextPostInc</a> (void)=0</td></tr> <tr class="memdesc:adeb1b03f3f09ae322c73bf687d5c3f75 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="mdescLeft"> </td><td class="mdescRight">Gets the current code unit for returning and advances to the next code unit in the iteration range (toward endIndex()). <a href="#adeb1b03f3f09ae322c73bf687d5c3f75">More...</a><br /></td></tr> <tr class="separator:adeb1b03f3f09ae322c73bf687d5c3f75 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acccb6c5e433ff1cbaa5830130b569e97 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><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="classicu_1_1ForwardCharacterIterator.html#acccb6c5e433ff1cbaa5830130b569e97">next32PostInc</a> (void)=0</td></tr> <tr class="memdesc:acccb6c5e433ff1cbaa5830130b569e97 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="mdescLeft"> </td><td class="mdescRight">Gets the current code point for returning and advances to the next code point in the iteration range (toward endIndex()). <a href="#acccb6c5e433ff1cbaa5830130b569e97">More...</a><br /></td></tr> <tr class="separator:acccb6c5e433ff1cbaa5830130b569e97 inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abf876be6f80694afeeb5086524d249df inherit pub_methods_classicu_1_1ForwardCharacterIterator"><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="classicu_1_1ForwardCharacterIterator.html#abf876be6f80694afeeb5086524d249df">hasNext</a> ()=0</td></tr> <tr class="memdesc:abf876be6f80694afeeb5086524d249df inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="mdescLeft"> </td><td class="mdescRight">Returns FALSE if there are no more code units or code points at or after the current position in the iteration range. <a href="#abf876be6f80694afeeb5086524d249df">More...</a><br /></td></tr> <tr class="separator:abf876be6f80694afeeb5086524d249df inherit pub_methods_classicu_1_1ForwardCharacterIterator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pub_methods_classicu_1_1UObject"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classicu_1_1UObject')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classicu_1_1UObject.html">icu::UObject</a></td></tr> <tr class="memitem:af10026497704f510d3d1f2eff50acb18 inherit pub_methods_classicu_1_1UObject"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1UObject.html#af10026497704f510d3d1f2eff50acb18">~UObject</a> ()</td></tr> <tr class="memdesc:af10026497704f510d3d1f2eff50acb18 inherit pub_methods_classicu_1_1UObject"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#af10026497704f510d3d1f2eff50acb18">More...</a><br /></td></tr> <tr class="separator:af10026497704f510d3d1f2eff50acb18 inherit pub_methods_classicu_1_1UObject"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a> Protected Member Functions</h2></td></tr> <tr class="memitem:af16635194b2dd485f35a6f2c35240cf2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#af16635194b2dd485f35a6f2c35240cf2">CharacterIterator</a> ()</td></tr> <tr class="memdesc:af16635194b2dd485f35a6f2c35240cf2"><td class="mdescLeft"> </td><td class="mdescRight">Empty constructor. <a href="#af16635194b2dd485f35a6f2c35240cf2">More...</a><br /></td></tr> <tr class="separator:af16635194b2dd485f35a6f2c35240cf2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8b5f0102a268c1d7e74bdb03fdfbf59d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#a8b5f0102a268c1d7e74bdb03fdfbf59d">CharacterIterator</a> (int32_t length)</td></tr> <tr class="memdesc:a8b5f0102a268c1d7e74bdb03fdfbf59d"><td class="mdescLeft"> </td><td class="mdescRight">Constructor, just setting the length field in this base class. <a href="#a8b5f0102a268c1d7e74bdb03fdfbf59d">More...</a><br /></td></tr> <tr class="separator:a8b5f0102a268c1d7e74bdb03fdfbf59d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a20e82be8c18df7bc236e3f66d3c5ce68"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#a20e82be8c18df7bc236e3f66d3c5ce68">CharacterIterator</a> (int32_t length, int32_t position)</td></tr> <tr class="memdesc:a20e82be8c18df7bc236e3f66d3c5ce68"><td class="mdescLeft"> </td><td class="mdescRight">Constructor, just setting the length and position fields in this base class. <a href="#a20e82be8c18df7bc236e3f66d3c5ce68">More...</a><br /></td></tr> <tr class="separator:a20e82be8c18df7bc236e3f66d3c5ce68"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae6aef71dcd8da9e3643f36563c1bf2e8"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#ae6aef71dcd8da9e3643f36563c1bf2e8">CharacterIterator</a> (int32_t length, int32_t textBegin, int32_t textEnd, int32_t position)</td></tr> <tr class="memdesc:ae6aef71dcd8da9e3643f36563c1bf2e8"><td class="mdescLeft"> </td><td class="mdescRight">Constructor, just setting the length, start, end, and position fields in this base class. <a href="#ae6aef71dcd8da9e3643f36563c1bf2e8">More...</a><br /></td></tr> <tr class="separator:ae6aef71dcd8da9e3643f36563c1bf2e8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab768bb7859a8801c0d895dcb032a195d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#ab768bb7859a8801c0d895dcb032a195d">CharacterIterator</a> (const <a class="el" href="classicu_1_1CharacterIterator.html">CharacterIterator</a> &that)</td></tr> <tr class="memdesc:ab768bb7859a8801c0d895dcb032a195d"><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <a href="#ab768bb7859a8801c0d895dcb032a195d">More...</a><br /></td></tr> <tr class="separator:ab768bb7859a8801c0d895dcb032a195d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af3fd5df0081fd8fccffdd4f1bd8a8811"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classicu_1_1CharacterIterator.html">CharacterIterator</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#af3fd5df0081fd8fccffdd4f1bd8a8811">operator=</a> (const <a class="el" href="classicu_1_1CharacterIterator.html">CharacterIterator</a> &that)</td></tr> <tr class="memdesc:af3fd5df0081fd8fccffdd4f1bd8a8811"><td class="mdescLeft"> </td><td class="mdescRight">Assignment operator. <a href="#af3fd5df0081fd8fccffdd4f1bd8a8811">More...</a><br /></td></tr> <tr class="separator:af3fd5df0081fd8fccffdd4f1bd8a8811"><td class="memSeparator" colspan="2"> </td></tr> <tr class="inherit_header pro_methods_classicu_1_1ForwardCharacterIterator"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classicu_1_1ForwardCharacterIterator')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="classicu_1_1ForwardCharacterIterator.html">icu::ForwardCharacterIterator</a></td></tr> <tr class="memitem:aa338d78a701d10d549e3b1bb3dd93e89 inherit pro_methods_classicu_1_1ForwardCharacterIterator"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1ForwardCharacterIterator.html#aa338d78a701d10d549e3b1bb3dd93e89">ForwardCharacterIterator</a> ()</td></tr> <tr class="memdesc:aa338d78a701d10d549e3b1bb3dd93e89 inherit pro_methods_classicu_1_1ForwardCharacterIterator"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor to be overridden in the implementing class. <a href="#aa338d78a701d10d549e3b1bb3dd93e89">More...</a><br /></td></tr> <tr class="separator:aa338d78a701d10d549e3b1bb3dd93e89 inherit pro_methods_classicu_1_1ForwardCharacterIterator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a644d4dc45a418f556f69cff56b31871f inherit pro_methods_classicu_1_1ForwardCharacterIterator"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1ForwardCharacterIterator.html#a644d4dc45a418f556f69cff56b31871f">ForwardCharacterIterator</a> (const <a class="el" href="classicu_1_1ForwardCharacterIterator.html">ForwardCharacterIterator</a> &other)</td></tr> <tr class="memdesc:a644d4dc45a418f556f69cff56b31871f inherit pro_methods_classicu_1_1ForwardCharacterIterator"><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor to be overridden in the implementing class. <a href="#a644d4dc45a418f556f69cff56b31871f">More...</a><br /></td></tr> <tr class="separator:a644d4dc45a418f556f69cff56b31871f inherit pro_methods_classicu_1_1ForwardCharacterIterator"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5b49dbc6510238684b687efb338e77e2 inherit pro_methods_classicu_1_1ForwardCharacterIterator"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classicu_1_1ForwardCharacterIterator.html">ForwardCharacterIterator</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1ForwardCharacterIterator.html#a5b49dbc6510238684b687efb338e77e2">operator=</a> (const <a class="el" href="classicu_1_1ForwardCharacterIterator.html">ForwardCharacterIterator</a> &)</td></tr> <tr class="memdesc:a5b49dbc6510238684b687efb338e77e2 inherit pro_methods_classicu_1_1ForwardCharacterIterator"><td class="mdescLeft"> </td><td class="mdescRight">Assignment operator to be overridden in the implementing class. <a href="#a5b49dbc6510238684b687efb338e77e2">More...</a><br /></td></tr> <tr class="separator:a5b49dbc6510238684b687efb338e77e2 inherit pro_methods_classicu_1_1ForwardCharacterIterator"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr class="memitem:a089ec2c9e1cbe7b6b170723c38fd2e55"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#a089ec2c9e1cbe7b6b170723c38fd2e55">textLength</a></td></tr> <tr class="memdesc:a089ec2c9e1cbe7b6b170723c38fd2e55"><td class="mdescLeft"> </td><td class="mdescRight">Base class text length field. <a href="#a089ec2c9e1cbe7b6b170723c38fd2e55">More...</a><br /></td></tr> <tr class="separator:a089ec2c9e1cbe7b6b170723c38fd2e55"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a974c6d9bbf0ae1a74688ffdbfc08ad17"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#a974c6d9bbf0ae1a74688ffdbfc08ad17">pos</a></td></tr> <tr class="memdesc:a974c6d9bbf0ae1a74688ffdbfc08ad17"><td class="mdescLeft"> </td><td class="mdescRight">Base class field for the current position. <a href="#a974c6d9bbf0ae1a74688ffdbfc08ad17">More...</a><br /></td></tr> <tr class="separator:a974c6d9bbf0ae1a74688ffdbfc08ad17"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8a08a04f80fc138a3dee27915412bdec"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#a8a08a04f80fc138a3dee27915412bdec">begin</a></td></tr> <tr class="memdesc:a8a08a04f80fc138a3dee27915412bdec"><td class="mdescLeft"> </td><td class="mdescRight">Base class field for the start of the iteration range. <a href="#a8a08a04f80fc138a3dee27915412bdec">More...</a><br /></td></tr> <tr class="separator:a8a08a04f80fc138a3dee27915412bdec"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa3722479f3191d6bcad48a24bd6c8f3e"><td class="memItemLeft" align="right" valign="top">int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classicu_1_1CharacterIterator.html#aa3722479f3191d6bcad48a24bd6c8f3e">end</a></td></tr> <tr class="memdesc:aa3722479f3191d6bcad48a24bd6c8f3e"><td class="mdescLeft"> </td><td class="mdescRight">Base class field for the end of the iteration range. <a href="#aa3722479f3191d6bcad48a24bd6c8f3e">More...</a><br /></td></tr> <tr class="separator:aa3722479f3191d6bcad48a24bd6c8f3e"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><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="classicu_1_1CharacterIterator.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="classicu_1_1CharacterIterator.html" title="Abstract class that defines an API for iteration on text objects. ">CharacterIterator</a> is now a subclass of <a class="el" href="classicu_1_1ForwardCharacterIterator.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="classicu_1_1ForwardCharacterIterator.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="classicu_1_1ForwardCharacterIterator.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="classicu_1_1CharacterIterator.html#ac83ac180f319b25a9e6ab1a80d66d928" title="Returns FALSE if there are no more code units or code points before the current position in the itera...">hasPrevious()</a> function that can be used analogously to <a class="el" href="classicu_1_1ForwardCharacterIterator.html#abf876be6f80694afeeb5086524d249df" title="Returns FALSE if there are no more code units or code points at or after the current position in the ...">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="classicu_1_1ForwardCharacterIterator.html#abf876be6f80694afeeb5086524d249df" title="Returns FALSE if there are no more code units or code points at or after the current position in the ...">hasNext()</a>: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> forward1(<a class="code" href="classicu_1_1CharacterIterator.html#af16635194b2dd485f35a6f2c35240cf2">CharacterIterator</a> &it) {</div><div class="line"> <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> c;</div><div class="line"> <span class="keywordflow">for</span>(it.setToStart(); it.hasNext();) {</div><div class="line"> c=it.next32PostInc();</div><div class="line"> <span class="comment">// use c</span></div><div class="line"> }</div><div class="line"> }</div></div><!-- fragment --><p> Forward iteration more similar to loops with the old forward iteration, showing a way to convert simple for() loops: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> forward2(<a class="code" href="classicu_1_1CharacterIterator.html#af16635194b2dd485f35a6f2c35240cf2">CharacterIterator</a> &it) {</div><div class="line"> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> c;</div><div class="line"> <span class="keywordflow">for</span>(c=it.firstPostInc(); c!=CharacterIterator::DONE; c=it.nextPostInc()) {</div><div class="line"> <span class="comment">// use c</span></div><div class="line"> }</div><div class="line">}</div></div><!-- fragment --><p> Backward iteration with <a class="el" href="classicu_1_1CharacterIterator.html#ac5cff21d4826f4f655303de8fecb5ce5" title="Sets the iterator to the end of its iteration range, just behind the last code unit or code point...">setToEnd()</a> and <a class="el" href="classicu_1_1CharacterIterator.html#ac83ac180f319b25a9e6ab1a80d66d928" title="Returns FALSE if there are no more code units or code points before the current position in the itera...">hasPrevious()</a>: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> backward1(<a class="code" href="classicu_1_1CharacterIterator.html#af16635194b2dd485f35a6f2c35240cf2">CharacterIterator</a> &it) {</div><div class="line"> <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> c;</div><div class="line"> <span class="keywordflow">for</span>(it.setToEnd(); it.hasPrevious();) {</div><div class="line"> c=it.previous32();</div><div class="line"> <span class="comment">// use c</span></div><div class="line"> }</div><div class="line">}</div></div><!-- fragment --><p> Backward iteration with a more traditional for() loop: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> backward2(<a class="code" href="classicu_1_1CharacterIterator.html#af16635194b2dd485f35a6f2c35240cf2">CharacterIterator</a> &it) {</div><div class="line"> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> c;</div><div class="line"> <span class="keywordflow">for</span>(c=it.last(); c!=CharacterIterator::DONE; c=it.previous()) {</div><div class="line"> <span class="comment">// use c</span></div><div class="line"> }</div><div class="line"> }</div></div><!-- fragment --><p>Example for random access: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> random(<a class="code" href="classicu_1_1CharacterIterator.html#af16635194b2dd485f35a6f2c35240cf2">CharacterIterator</a> &it) {</div><div class="line"> <span class="comment">// set to the third code point from the beginning</span></div><div class="line"> it.move32(3, CharacterIterator::kStart);</div><div class="line"> <span class="comment">// get a code point from here without moving the position</span></div><div class="line"> <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> c=it.current32();</div><div class="line"> <span class="comment">// get the position</span></div><div class="line"> int32_t <a class="code" href="classicu_1_1CharacterIterator.html#a974c6d9bbf0ae1a74688ffdbfc08ad17">pos</a>=it.getIndex();</div><div class="line"> <span class="comment">// get the previous code unit</span></div><div class="line"> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> u=it.previous();</div><div class="line"> <span class="comment">// move back one more code unit</span></div><div class="line"> it.move(-1, CharacterIterator::kCurrent);</div><div class="line"> <span class="comment">// set the position back to where it was</span></div><div class="line"> <span class="comment">// and read the same code point c and move beyond it</span></div><div class="line"> it.setIndex(pos);</div><div class="line"> <span class="keywordflow">if</span>(c!=it.next32PostInc()) {</div><div class="line"> exit(1); <span class="comment">// CharacterIterator inconsistent</span></div><div class="line"> }</div><div class="line">}</div></div><!-- fragment --><p>Examples, especially for the old API:</p> <p>Function processing characters, in this example simple output </p><pre> <div class="fragment"><div class="line"><span class="keywordtype">void</span> processChar( <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> c )</div><div class="line">{</div><div class="line"> cout << <span class="stringliteral">" "</span> << c;</div><div class="line">}</div></div><!-- fragment --> </pre><p> Traverse the text from start to finish </p><pre> <div class="fragment"><div class="line"><span class="keywordtype">void</span> traverseForward(<a class="code" href="classicu_1_1CharacterIterator.html#af16635194b2dd485f35a6f2c35240cf2">CharacterIterator</a>& iter)</div><div class="line">{</div><div class="line"> <span class="keywordflow">for</span>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> c = iter.first(); c != <a class="code" href="classicu_1_1CharacterIterator.html#af16635194b2dd485f35a6f2c35240cf2">CharacterIterator</a>.DONE; c = iter.next()) {</div><div class="line"> processChar(c);</div><div class="line"> }</div><div class="line">}</div></div><!-- fragment --> </pre><p> Traverse the text backwards, from end to start </p><pre> <div class="fragment"><div class="line"><span class="keywordtype">void</span> traverseBackward(<a class="code" href="classicu_1_1CharacterIterator.html#af16635194b2dd485f35a6f2c35240cf2">CharacterIterator</a>& iter)</div><div class="line">{</div><div class="line"> <span class="keywordflow">for</span>(<a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> c = iter.last(); c != <a class="code" href="classicu_1_1CharacterIterator.html#af16635194b2dd485f35a6f2c35240cf2">CharacterIterator</a>.DONE; c = iter.previous()) {</div><div class="line"> processChar(c);</div><div class="line"> }</div><div class="line">}</div></div><!-- fragment --> </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"><div class="line"><span class="keywordtype">void</span> traverseOut(<a class="code" href="classicu_1_1CharacterIterator.html#af16635194b2dd485f35a6f2c35240cf2">CharacterIterator</a>& iter, int32_t pos)</div><div class="line">{</div><div class="line"> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> c;</div><div class="line"> <span class="keywordflow">for</span> (c = iter.setIndex(pos);</div><div class="line"> c != <a class="code" href="classicu_1_1CharacterIterator.html#af16635194b2dd485f35a6f2c35240cf2">CharacterIterator</a>.DONE && (Unicode::isLetter(c) || Unicode::isDigit(c));</div><div class="line"> c = iter.next()) {}</div><div class="line"> int32_t <a class="code" href="classicu_1_1CharacterIterator.html#aa3722479f3191d6bcad48a24bd6c8f3e">end</a> = iter.getIndex();</div><div class="line"> <span class="keywordflow">for</span> (c = iter.setIndex(pos);</div><div class="line"> c != <a class="code" href="classicu_1_1CharacterIterator.html#af16635194b2dd485f35a6f2c35240cf2">CharacterIterator</a>.DONE && (Unicode::isLetter(c) || Unicode::isDigit(c));</div><div class="line"> c = iter.previous()) {}</div><div class="line"> int32_t start = iter.getIndex() + 1;</div><div class="line"> </div><div class="line"> cout << <span class="stringliteral">"start: "</span> << start << <span class="stringliteral">" end: "</span> << end << endl;</div><div class="line"> <span class="keywordflow">for</span> (c = iter.setIndex(start); iter.getIndex() < <a class="code" href="classicu_1_1CharacterIterator.html#aa3722479f3191d6bcad48a24bd6c8f3e">end</a>; c = iter.next() ) {</div><div class="line"> processChar(c);</div><div class="line"> }</div><div class="line"> }</div></div><!-- fragment --> </pre><p> Creating a <a class="el" href="classicu_1_1StringCharacterIterator.html" title="A concrete subclass of CharacterIterator that iterates over the characters (code units or code points...">StringCharacterIterator</a> and calling the test functions </p><pre> <div class="fragment"><div class="line"><span class="keywordtype">void</span> CharacterIterator_Example( <span class="keywordtype">void</span> )</div><div class="line"> {</div><div class="line"> cout << endl << <span class="stringliteral">"===== CharacterIterator_Example: ====="</span> << endl;</div><div class="line"> UnicodeString text(<span class="stringliteral">"Ein kleiner Satz."</span>);</div><div class="line"> StringCharacterIterator iterator(text);</div><div class="line"> cout << <span class="stringliteral">"----- traverseForward: -----------"</span> << endl;</div><div class="line"> traverseForward( iterator );</div><div class="line"> cout << endl << endl << <span class="stringliteral">"----- traverseBackward: ----------"</span> << endl;</div><div class="line"> traverseBackward( iterator );</div><div class="line"> cout << endl << endl << <span class="stringliteral">"----- traverseOut: ---------------"</span> << endl;</div><div class="line"> traverseOut( iterator, 7 );</div><div class="line"> cout << endl << endl << <span class="stringliteral">"-----"</span> << endl;</div><div class="line"> }</div></div><!-- fragment --> </pre><dl class="stable"><dt><b><a class="el" href="stable.html#_stable000112">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00358">358</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> </div><h2 class="groupheader">Member Enumeration Documentation</h2> <a class="anchor" id="a065aff1d713f7659faba4951d16f5f38"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="classicu_1_1CharacterIterator.html#a065aff1d713f7659faba4951d16f5f38">icu::CharacterIterator::EOrigin</a></td> </tr> </table> </div><div class="memdoc"> <p>Origin enumeration for the <a class="el" href="classicu_1_1CharacterIterator.html#a37e9b91a0bd0e9dde2761b603560da9d" title="Moves the current position relative to the start or end of the iteration range, or relative to the cu...">move()</a> and <a class="el" href="classicu_1_1CharacterIterator.html#aac9a417f50cd4d741da7fac3429dad0d" title="Moves the current position relative to the start or end of the iteration range, or relative to the cu...">move32()</a> functions. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000125">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00364">364</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> </div> </div> <h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a6f02b160cc84f55de41adc72cbb9b9ed"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual icu::CharacterIterator::~CharacterIterator </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Destructor. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000126">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <a class="anchor" id="af16635194b2dd485f35a6f2c35240cf2"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">icu::CharacterIterator::CharacterIterator </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Empty constructor. </p> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000152">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <a class="anchor" id="a8b5f0102a268c1d7e74bdb03fdfbf59d"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">icu::CharacterIterator::CharacterIterator </td> <td>(</td> <td class="paramtype">int32_t </td> <td class="paramname"><em>length</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </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#_stable000153">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <a class="anchor" id="a20e82be8c18df7bc236e3f66d3c5ce68"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">icu::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> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </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#_stable000154">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <a class="anchor" id="ae6aef71dcd8da9e3643f36563c1bf2e8"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">icu::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> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </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#_stable000155">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <a class="anchor" id="ab768bb7859a8801c0d895dcb032a195d"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">icu::CharacterIterator::CharacterIterator </td> <td>(</td> <td class="paramtype">const <a class="el" href="classicu_1_1CharacterIterator.html">CharacterIterator</a> & </td> <td class="paramname"><em>that</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Copy constructor. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">that</td><td>The <a class="el" href="classicu_1_1CharacterIterator.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#_stable000156">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a8b3d69e0cbc3a22f7fc87f78b78c7ca2"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="classicu_1_1CharacterIterator.html">CharacterIterator</a>* icu::CharacterIterator::clone </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns a pointer to a new <a class="el" href="classicu_1_1CharacterIterator.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="section return"><dt>Returns</dt><dd>a pointer to a new <a class="el" href="classicu_1_1CharacterIterator.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#_stable000127">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a786173968fbad4b02c4962ff1b569e40">icu::UCharCharacterIterator</a>, and <a class="el" href="classicu_1_1StringCharacterIterator.html#a16d47aaac17358532793ee5062c1b161">icu::StringCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a7c40738625fe775ef8d07e166ac5ca54"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> icu::CharacterIterator::current </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns the code unit the iterator currently refers to. </p> <dl class="section return"><dt>Returns</dt><dd>the current code unit. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000138">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a70269e8ca30ec4cc21ced9e7c1f76ae6">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a946220338dce1cb3151ef3dbd6a7c943"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> icu::CharacterIterator::current32 </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns the code point the iterator currently refers to. </p> <dl class="section return"><dt>Returns</dt><dd>the current code point. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000139">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a851f088d97ed3b87d05d3fed942d09bf">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="acb9498db4285d26d9bfaccb73f688f65"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int32_t icu::CharacterIterator::endIndex </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </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="classicu_1_1CharacterIterator.html#a3e1b89449404ca3b73798f9f8abe33e9" title="Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit...">last()</a>. </p> <dl class="section return"><dt>Returns</dt><dd>the numeric index in the underlying text-storage object of the position immediately BEYOND the character returned by <a class="el" href="classicu_1_1CharacterIterator.html#a3e1b89449404ca3b73798f9f8abe33e9" title="Sets the iterator to refer to the last code unit in its iteration range, and returns that code unit...">last()</a>. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000146">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00709">709</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> </div> </div> <a class="anchor" id="a2434e2d9d5436d1e17c093f5d39ef9eb"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> icu::CharacterIterator::first </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </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="classicu_1_1CharacterIterator.html#a5ba065caa3c0af49f3683dcebde6000e" title="Advances to the next code unit in the iteration range (toward endIndex()), and returns that code unit...">next()</a>. </p><dl class="section return"><dt>Returns</dt><dd>the first code unit in its iteration range. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000128">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a221d7739ab6a022618d165946bb710db">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a89548cc913bf599865c9098638a9c2e7"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> icu::CharacterIterator::first32 </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </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="classicu_1_1CharacterIterator.html#a6e9a84b89a0d3fe7aae189f744576b00" title="Advances to the next code point in the iteration range (toward endIndex()), and returns that code poi...">next32()</a>. </p> <p>Note that an iteration with <a class="el" href="classicu_1_1ForwardCharacterIterator.html#acccb6c5e433ff1cbaa5830130b569e97" title="Gets the current code point for returning and advances to the next code point in the iteration range ...">next32PostInc()</a>, beginning with, e.g., <a class="el" href="classicu_1_1CharacterIterator.html#ac6e8c16981c7481256c50ab7145185aa" title="Sets the iterator to refer to the first code unit or code point in its iteration range. ">setToStart()</a> or <a class="el" href="classicu_1_1CharacterIterator.html#a1e17d5547a23329c13429024cae7271a" title="Sets the iterator to refer to the first code unit in its iteration range, returns that code unit...">firstPostInc()</a>, is more efficient. </p><dl class="section return"><dt>Returns</dt><dd>the first code point in its iteration range. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000130">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a8e303d836c4f59637830ccebd029993d">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a10b0383da1187bb22b46412ca46da1f4"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> icu::CharacterIterator::first32PostInc </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </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="classicu_1_1CharacterIterator.html#ac6e8c16981c7481256c50ab7145185aa" title="Sets the iterator to refer to the first code unit or code point in its iteration range. ">setToStart()</a> for forward iteration with <a class="el" href="classicu_1_1ForwardCharacterIterator.html#acccb6c5e433ff1cbaa5830130b569e97" title="Gets the current code point for returning and advances to the next code point in the iteration range ...">next32PostInc()</a>. </p><dl class="section return"><dt>Returns</dt><dd>the first code point in its iteration range. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000131">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Reimplemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a0f75eda04e5e587230bf3d15ce654286">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a1e17d5547a23329c13429024cae7271a"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> icu::CharacterIterator::firstPostInc </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">virtual</span></span> </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="classicu_1_1CharacterIterator.html#ac6e8c16981c7481256c50ab7145185aa" title="Sets the iterator to refer to the first code unit or code point in its iteration range. ">setToStart()</a> for forward iteration with <a class="el" href="classicu_1_1ForwardCharacterIterator.html#adeb1b03f3f09ae322c73bf687d5c3f75" title="Gets the current code unit for returning and advances to the next code unit in the iteration range (t...">nextPostInc()</a>. </p><dl class="section return"><dt>Returns</dt><dd>the first code unit in its iteration range. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000129">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Reimplemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a06b446c0202436b0f63ab5ac029bccc5">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a64840e056163f5ddd38dab521f81f10c"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int32_t icu::CharacterIterator::getIndex </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </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="classicu_1_1CharacterIterator.html#a7c40738625fe775ef8d07e166ac5ca54" title="Returns the code unit the iterator currently refers to. ">current()</a>). </p> <dl class="section return"><dt>Returns</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#_stable000147">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00714">714</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> </div> </div> <a class="anchor" id="aa68593f788c2eeaae5c1237191e7a2ae"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int32_t icu::CharacterIterator::getLength </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns the length of the entire text in the underlying text-storage object. </p> <dl class="section return"><dt>Returns</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#_stable000148">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00719">719</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> <p>References <a class="el" href="uversion_8h_source.html#l00132">U_NAMESPACE_END</a>.</p> </div> </div> <a class="anchor" id="a2a71011a2d6f91c7f4ca2c1a2fe6fc7f"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual void icu::CharacterIterator::getText </td> <td>(</td> <td class="paramtype"><a class="el" href="classicu_1_1UnicodeString.html">UnicodeString</a> & </td> <td class="paramname"><em>result</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Copies the text under iteration into the <a class="el" href="classicu_1_1UnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides similar function...">UnicodeString</a> referred to by "result". </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">result</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#_stable000151">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a4bf66cb3192643dd39ce6d5057d78b4f">icu::UCharCharacterIterator</a>, and <a class="el" href="classicu_1_1StringCharacterIterator.html#a11b0f7c1792b63ae246ebf0d3f1141ad">icu::StringCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="ac83ac180f319b25a9e6ab1a80d66d928"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5">UBool</a> icu::CharacterIterator::hasPrevious </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </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="classicu_1_1CharacterIterator.html#a23965d8aaf700f570f97846700f607e2" title="Advances to the previous code unit in the iteration range (toward startIndex()), and returns that cod...">previous()</a> or <a class="el" href="classicu_1_1CharacterIterator.html#aa4e10820fbdb4dda83464e4bb629cbdb" title="Advances to the previous code point in the iteration range (toward startIndex()), and returns that co...">previous32()</a> in backward iteration. </p><dl class="section return"><dt>Returns</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#_stable000144">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#ab5e39592d6b9ed49b304b1a489c535fa">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a3e1b89449404ca3b73798f9f8abe33e9"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> icu::CharacterIterator::last </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </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="classicu_1_1CharacterIterator.html#a23965d8aaf700f570f97846700f607e2" title="Advances to the previous code unit in the iteration range (toward startIndex()), and returns that cod...">previous()</a>. </p><dl class="section return"><dt>Returns</dt><dd>the last code unit. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000133">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#afcdee0de8cb234e75cabf83f8f037e50">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a86fc3990c224e4df431e6b93bb757298"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> icu::CharacterIterator::last32 </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </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="classicu_1_1CharacterIterator.html#aa4e10820fbdb4dda83464e4bb629cbdb" title="Advances to the previous code point in the iteration range (toward startIndex()), and returns that co...">previous32()</a>. </p><dl class="section return"><dt>Returns</dt><dd>the last code point. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000134">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a9eed4489840c5815e641555466df1582">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a37e9b91a0bd0e9dde2761b603560da9d"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual int32_t icu::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="classicu_1_1CharacterIterator.html#a065aff1d713f7659faba4951d16f5f38">EOrigin</a> </td> <td class="paramname"><em>origin</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </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 class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">delta</td><td>the position relative to origin. A positive delta means forward; a negative delta means backward. </td></tr> <tr><td class="paramname">origin</td><td>Origin enumeration {kStart, kCurrent, kEnd} </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the new position </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000149">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a57fd4f8d6886b8b28f4c5975879d0be0">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="aac9a417f50cd4d741da7fac3429dad0d"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual int32_t icu::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="classicu_1_1CharacterIterator.html#a065aff1d713f7659faba4951d16f5f38">EOrigin</a> </td> <td class="paramname"><em>origin</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </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 class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">delta</td><td>the position relative to origin. A positive delta means forward; a negative delta means backward. </td></tr> <tr><td class="paramname">origin</td><td>Origin enumeration {kStart, kCurrent, kEnd} </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the new position </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000150">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#aa22dffcd3e10f438a50a47bd433ffe00">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a5ba065caa3c0af49f3683dcebde6000e"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> icu::CharacterIterator::next </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Advances to the next code unit in the iteration range (toward <a class="el" href="classicu_1_1CharacterIterator.html#acb9498db4285d26d9bfaccb73f688f65" title="Returns the numeric index in the underlying text-storage object of the position immediately BEYOND th...">endIndex()</a>), and returns that code unit. </p> <p>If there are no more code units to return, returns DONE. </p><dl class="section return"><dt>Returns</dt><dd>the next code unit. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000140">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#af07a4a18fdb1b2e2c8a0e398c2df381a">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a6e9a84b89a0d3fe7aae189f744576b00"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> icu::CharacterIterator::next32 </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Advances to the next code point in the iteration range (toward <a class="el" href="classicu_1_1CharacterIterator.html#acb9498db4285d26d9bfaccb73f688f65" title="Returns the numeric index in the underlying text-storage object of the position immediately BEYOND th...">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="classicu_1_1ForwardCharacterIterator.html#acccb6c5e433ff1cbaa5830130b569e97" title="Gets the current code point for returning and advances to the next code point in the iteration range ...">next32PostInc()</a>. </p><dl class="section return"><dt>Returns</dt><dd>the next code point. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000141">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a6913c3566f70f450b36b72799e778662">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="af3fd5df0081fd8fccffdd4f1bd8a8811"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classicu_1_1CharacterIterator.html">CharacterIterator</a>& icu::CharacterIterator::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classicu_1_1CharacterIterator.html">CharacterIterator</a> & </td> <td class="paramname"><em>that</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Assignment operator. </p> <p>Sets this <a class="el" href="classicu_1_1CharacterIterator.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 class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">that</td><td>The <a class="el" href="classicu_1_1CharacterIterator.html" title="Abstract class that defines an API for iteration on text objects. ">CharacterIterator</a> passed in. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the newly set <a class="el" href="classicu_1_1CharacterIterator.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#_stable000157">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> </div> </div> <a class="anchor" id="a23965d8aaf700f570f97846700f607e2"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> icu::CharacterIterator::previous </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Advances to the previous code unit in the iteration range (toward <a class="el" href="classicu_1_1CharacterIterator.html#a997669c2389aede36fd4402cc1331310" title="Returns the numeric index in the underlying text-storage object of the character returned by first()...">startIndex()</a>), and returns that code unit. </p> <p>If there are no more code units to return, returns DONE. </p><dl class="section return"><dt>Returns</dt><dd>the previous code unit. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000142">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a6e1d829c679b176551a5533e0dd868e4">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="aa4e10820fbdb4dda83464e4bb629cbdb"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> icu::CharacterIterator::previous32 </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Advances to the previous code point in the iteration range (toward <a class="el" href="classicu_1_1CharacterIterator.html#a997669c2389aede36fd4402cc1331310" title="Returns the numeric index in the underlying text-storage object of the character returned by first()...">startIndex()</a>), and returns that code point. </p> <p>If there are no more code points to return, returns DONE. </p><dl class="section return"><dt>Returns</dt><dd>the previous code point. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000143">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a527f59faf49c9f200b550d7b859b016f">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a4a89b0d0cc85fcaad5c0e1c3e75da928"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac">UChar</a> icu::CharacterIterator::setIndex </td> <td>(</td> <td class="paramtype">int32_t </td> <td class="paramname"><em>position</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </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 class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">position</td><td>the "position"-th code unit in the text-storage object </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the "position"-th code unit. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000136">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#a884772012bbb1269c4204aa3d5b1ffb0">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="a8519987104888e1af043b146971b6793"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">virtual <a class="el" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809">UChar32</a> icu::CharacterIterator::setIndex32 </td> <td>(</td> <td class="paramtype">int32_t </td> <td class="paramname"><em>position</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">pure virtual</span></span> </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 class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">position</td><td>the "position"-th code unit in the text-storage object </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>the "position"-th code point. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000137">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Implemented in <a class="el" href="classicu_1_1UCharCharacterIterator.html#aa3c0cc4203e98bbf27e0958f7823d588">icu::UCharCharacterIterator</a>.</p> </div> </div> <a class="anchor" id="ac5cff21d4826f4f655303de8fecb5ce5"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int32_t icu::CharacterIterator::setToEnd </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </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="classicu_1_1CharacterIterator.html#a23965d8aaf700f570f97846700f607e2" title="Advances to the previous code unit in the iteration range (toward startIndex()), and returns that cod...">previous()</a> or <a class="el" href="classicu_1_1CharacterIterator.html#aa4e10820fbdb4dda83464e4bb629cbdb" title="Advances to the previous code point in the iteration range (toward startIndex()), and returns that co...">previous32()</a>. </p><dl class="section return"><dt>Returns</dt><dd>the end position of the iteration range </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000135">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00699">699</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> </div> </div> <a class="anchor" id="ac6e8c16981c7481256c50ab7145185aa"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int32_t icu::CharacterIterator::setToStart </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </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="classicu_1_1ForwardCharacterIterator.html#adeb1b03f3f09ae322c73bf687d5c3f75" title="Gets the current code unit for returning and advances to the next code unit in the iteration range (t...">nextPostInc()</a> or <a class="el" href="classicu_1_1ForwardCharacterIterator.html#acccb6c5e433ff1cbaa5830130b569e97" title="Gets the current code point for returning and advances to the next code point in the iteration range ...">next32PostInc()</a>. </p><dl class="section return"><dt>Returns</dt><dd>the start position of the iteration range </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000132">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00694">694</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> </div> </div> <a class="anchor" id="a997669c2389aede36fd4402cc1331310"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int32_t icu::CharacterIterator::startIndex </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">inline</span></span> </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="classicu_1_1CharacterIterator.html#a2434e2d9d5436d1e17c093f5d39ef9eb" title="Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit...">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="section return"><dt>Returns</dt><dd>the numeric index in the underlying text-storage object of the character returned by <a class="el" href="classicu_1_1CharacterIterator.html#a2434e2d9d5436d1e17c093f5d39ef9eb" title="Sets the iterator to refer to the first code unit in its iteration range, and returns that code unit...">first()</a>. </dd></dl> <dl class="stable"><dt><b><a class="el" href="stable.html#_stable000145">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00704">704</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> </div> </div> <h2 class="groupheader">Field Documentation</h2> <a class="anchor" id="a8a08a04f80fc138a3dee27915412bdec"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int32_t icu::CharacterIterator::begin</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </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#_stable000160">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00679">679</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> </div> </div> <a class="anchor" id="aa3722479f3191d6bcad48a24bd6c8f3e"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int32_t icu::CharacterIterator::end</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </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#_stable000161">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00685">685</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> </div> </div> <a class="anchor" id="a974c6d9bbf0ae1a74688ffdbfc08ad17"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int32_t icu::CharacterIterator::pos</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </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#_stable000159">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00673">673</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</a>.</p> </div> </div> <a class="anchor" id="a089ec2c9e1cbe7b6b170723c38fd2e55"></a> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">int32_t icu::CharacterIterator::textLength</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">protected</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Base class text length field. </p> <p>Necessary this for correct <a class="el" href="classicu_1_1CharacterIterator.html#a2a71011a2d6f91c7f4ca2c1a2fe6fc7f" title="Copies the text under iteration into the UnicodeString referred to by "result". ">getText()</a> and <a class="el" href="classicu_1_1ForwardCharacterIterator.html#ab5ca36cca044f5ea8a033c7a359d83a2" title="Generates a hash code for this iterator. ">hashCode()</a>. </p><dl class="stable"><dt><b><a class="el" href="stable.html#_stable000158">Stable:</a></b></dt><dd>ICU 2.0 </dd></dl> <p>Definition at line <a class="el" href="chariter_8h_source.html#l00667">667</a> of file <a class="el" href="chariter_8h_source.html">chariter.h</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><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.11 </small></address> </body> </html>