Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

UnicodeString Class Reference

UnicodeString is a string class that stores Unicode characters directly and provides similar functionality as the Java String class. More...

#include <unistr.h>

Inheritance diagram for UnicodeString:

Replaceable List of all members.

Public Methods

UBool operator== (const UnicodeString& text) const
 Equality operator. More...

UBool operator!= (const UnicodeString& text) const
 Inequality operator. More...

UBool operator> (const UnicodeString& text) const
 Greater than operator. More...

UBool operator< (const UnicodeString& text) const
 Less than operator. More...

UBool operator>= (const UnicodeString& text) const
 Greater than or equal operator. More...

UBool operator<= (const UnicodeString& text) const
 Less than or equal operator. More...

int8_t compare (const UnicodeString& text) const
 Compare the characters bitwise in this UnicodeString to the characters in text. More...

int8_t compare (UTextOffset start, int32_t length, const UnicodeString& srcText) const
 Compare the characters bitwise in the range [start, start + length) with the characters in srcText. More...

int8_t compare (UTextOffset start, int32_t length, const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength) const
 Compare the characters bitwise in the range [start, start + length) with the characters in srcText in the range [srcStart, srcStart + srcLength). More...

int8_t compare (const UChar *srcChars, int32_t srcLength) const
 Compare the characters bitwise in this UnicodeString with the first srcLength characters in srcChars. More...

int8_t compare (UTextOffset start, int32_t length, const UChar *srcChars) const
 Compare the characters bitwise in the range [start, start + length) with the first length characters in srcChars. More...

int8_t compare (UTextOffset start, int32_t length, const UChar *srcChars, UTextOffset srcStart, int32_t srcLength) const
 Compare the characters bitwise in the range [start, start + length) with the characters in srcChars in the range [srcStart, srcStart + srcLength). More...

int8_t compareBetween (UTextOffset start, UTextOffset limit, const UnicodeString& srcText, UTextOffset srcStart, UTextOffset srcLimit) const
 Compare the characters bitwise in the range [start, limit) with the characters in srcText in the range [srcStart, srcLimit). More...

int8_t compareCodePointOrder (const UnicodeString& text) const
 Compare two Unicode strings in code point order. More...

int8_t compareCodePointOrder (UTextOffset start, int32_t length, const UnicodeString& srcText) const
 Compare two Unicode strings in code point order. More...

int8_t compareCodePointOrder (UTextOffset start, int32_t length, const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength) const
 Compare two Unicode strings in code point order. More...

int8_t compareCodePointOrder (const UChar *srcChars, int32_t srcLength) const
 Compare two Unicode strings in code point order. More...

int8_t compareCodePointOrder (UTextOffset start, int32_t length, const UChar *srcChars) const
 Compare two Unicode strings in code point order. More...

int8_t compareCodePointOrder (UTextOffset start, int32_t length, const UChar *srcChars, UTextOffset srcStart, int32_t srcLength) const
 Compare two Unicode strings in code point order. More...

int8_t compareCodePointOrderBetween (UTextOffset start, UTextOffset limit, const UnicodeString& srcText, UTextOffset srcStart, UTextOffset srcLimit) const
 Compare two Unicode strings in code point order. More...

int8_t caseCompare (const UnicodeString& text, uint32_t options) const
 Compare two strings case-insensitively using full case folding. More...

int8_t caseCompare (UTextOffset start, int32_t length, const UnicodeString& srcText, uint32_t options) const
 Compare two strings case-insensitively using full case folding. More...

int8_t caseCompare (UTextOffset start, int32_t length, const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength, uint32_t options) const
 Compare two strings case-insensitively using full case folding. More...

int8_t caseCompare (const UChar *srcChars, int32_t srcLength, uint32_t options) const
 Compare two strings case-insensitively using full case folding. More...

int8_t caseCompare (UTextOffset start, int32_t length, const UChar *srcChars, uint32_t options) const
 Compare two strings case-insensitively using full case folding. More...

int8_t caseCompare (UTextOffset start, int32_t length, const UChar *srcChars, UTextOffset srcStart, int32_t srcLength, uint32_t options) const
 Compare two strings case-insensitively using full case folding. More...

int8_t caseCompareBetween (UTextOffset start, UTextOffset limit, const UnicodeString& srcText, UTextOffset srcStart, UTextOffset srcLimit, uint32_t options) const
 Compare two strings case-insensitively using full case folding. More...

UBool startsWith (const UnicodeString& text) const
 Determine if this starts with the characters in text. More...

UBool startsWith (const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength) const
 Determine if this starts with the characters in srcText in the range [srcStart, srcStart + srcLength). More...

UBool startsWith (const UChar *srcChars, int32_t srcLength) const
 Determine if this starts with the characters in srcChars. More...

UBool startsWith (const UChar *srcChars, UTextOffset srcStart, int32_t srcLength) const
 Determine if this ends with the characters in srcChars in the range [srcStart, srcStart + srcLength). More...

UBool endsWith (const UnicodeString& text) const
 Determine if this ends with the characters in text. More...

UBool endsWith (const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength) const
 Determine if this ends with the characters in srcText in the range [srcStart, srcStart + srcLength). More...

UBool endsWith (const UChar *srcChars, int32_t srcLength) const
 Determine if this ends with the characters in srcChars. More...

UBool endsWith (const UChar *srcChars, UTextOffset srcStart, int32_t srcLength) const
 Determine if this ends with the characters in srcChars in the range [srcStart, srcStart + srcLength). More...

UTextOffset indexOf (const UnicodeString& text) const
 Locate in this the first occurrence of the characters in text, using bitwise comparison. More...

UTextOffset indexOf (const UnicodeString& text, UTextOffset start) const
 Locate in this the first occurrence of the characters in text starting at offset start, using bitwise comparison. More...

UTextOffset indexOf (const UnicodeString& text, UTextOffset start, int32_t length) const
 Locate in this the first occurrence in the range [start, start + length) of the characters in text, using bitwise comparison. More...

UTextOffset indexOf (const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength, UTextOffset start, int32_t length) const
 Locate in this the first occurrence in the range [start, start + length) of the characters in srcText in the range [srcStart, srcStart + srcLength), using bitwise comparison. More...

UTextOffset indexOf (const UChar *srcChars, int32_t srcLength, UTextOffset start) const
 Locate in this the first occurrence of the characters in srcChars starting at offset start, using bitwise comparison. More...

UTextOffset indexOf (const UChar *srcChars, int32_t srcLength, UTextOffset start, int32_t length) const
 Locate in this the first occurrence in the range [start, start + length) of the characters in srcChars, using bitwise comparison. More...

UTextOffset indexOf (const UChar *srcChars, UTextOffset srcStart, int32_t srcLength, UTextOffset start, int32_t length) const
 Locate in this the first occurrence in the range [start, start + length) of the characters in srcChars in the range [srcStart, srcStart + srcLength), using bitwise comparison. More...

UTextOffset indexOf (UChar c) const
 Locate in this the first occurrence of the code point c, using bitwise comparison. More...

UTextOffset indexOf (UChar32 c) const
 Locate in this the first occurrence of the code point c, using bitwise comparison. More...

UTextOffset indexOf (UChar c, UTextOffset start) const
 Locate in this the first occurrence of the code point c starting at offset start, using bitwise comparison. More...

UTextOffset indexOf (UChar32 c, UTextOffset start) const
 Locate in this the first occurrence of the code point c starting at offset start, using bitwise comparison. More...

UTextOffset indexOf (UChar c, UTextOffset start, int32_t length) const
 Locate in this the first occurrence of the code point c in the range [start, start + length), using bitwise comparison. More...

UTextOffset indexOf (UChar32 c, UTextOffset start, int32_t length) const
 Locate in this the first occurrence of the code point c in the range [start, start + length), using bitwise comparison. More...

UTextOffset lastIndexOf (const UnicodeString& text) const
 Locate in this the last occurrence of the characters in text, using bitwise comparison. More...

UTextOffset lastIndexOf (const UnicodeString& text, UTextOffset start) const
 Locate in this the last occurrence of the characters in text starting at offset start, using bitwise comparison. More...

UTextOffset lastIndexOf (const UnicodeString& text, UTextOffset start, int32_t length) const
 Locate in this the last occurrence in the range [start, start + length) of the characters in text, using bitwise comparison. More...

UTextOffset lastIndexOf (const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength, UTextOffset start, int32_t length) const
 Locate in this the last occurrence in the range [start, start + length) of the characters in srcText in the range [srcStart, srcStart + srcLength), using bitwise comparison. More...

UTextOffset lastIndexOf (const UChar *srcChars, int32_t srcLength, UTextOffset start) const
 Locate in this the last occurrence of the characters in srcChars starting at offset start, using bitwise comparison. More...

UTextOffset lastIndexOf (const UChar *srcChars, int32_t srcLength, UTextOffset start, int32_t length) const
 Locate in this the last occurrence in the range [start, start + length) of the characters in srcChars, using bitwise comparison. More...

UTextOffset lastIndexOf (const UChar *srcChars, UTextOffset srcStart, int32_t srcLength, UTextOffset start, int32_t length) const
 Locate in this the last occurrence in the range [start, start + length) of the characters in srcChars in the range [srcStart, srcStart + srcLength), using bitwise comparison. More...

UTextOffset lastIndexOf (UChar c) const
 Locate in this the last occurrence of the code point c, using bitwise comparison. More...

UTextOffset lastIndexOf (UChar32 c) const
 Locate in this the last occurrence of the code point c, using bitwise comparison. More...

UTextOffset lastIndexOf (UChar c, UTextOffset start) const
 Locate in this the last occurrence of the code point c starting at offset start, using bitwise comparison. More...

UTextOffset lastIndexOf (UChar32 c, UTextOffset start) const
 Locate in this the last occurrence of the code point c starting at offset start, using bitwise comparison. More...

UTextOffset lastIndexOf (UChar c, UTextOffset start, int32_t length) const
 Locate in this the last occurrence of the code point c in the range [start, start + length), using bitwise comparison. More...

UTextOffset lastIndexOf (UChar32 c, UTextOffset start, int32_t length) const
 Locate in this the last occurrence of the code point c in the range [start, start + length), using bitwise comparison. More...

UChar charAt (UTextOffset offset) const
 Return the code unit at offset offset. More...

UChar operator[] (UTextOffset offset) const
 Return the code unit at offset offset. More...

UChar32 char32At (UTextOffset offset) const
 Return the code point that contains the code unit at offset offset. More...

UTextOffset getCharStart (UTextOffset offset)
 Adjust a random-access offset so that it points to the beginning of a Unicode character. More...

UTextOffset getCharLimit (UTextOffset offset)
 Adjust a random-access offset so that it points behind a Unicode character. More...

void extract (UTextOffset start, int32_t length, UChar *dst, UTextOffset dstStart = 0) const
 Copy the characters in the range [start, start + length) into the array dst, beginning at dstStart. More...

void extract (UTextOffset start, int32_t length, UnicodeString& target) const
 Copy the characters in the range [start, start + length) into the UnicodeString target. More...

void extractBetween (UTextOffset start, UTextOffset limit, UChar *dst, UTextOffset dstStart = 0) const
 Copy the characters in the range [start, limit) into the array dst, beginning at dstStart. More...

void extractBetween (UTextOffset start, UTextOffset limit, UnicodeString& target) const
 Copy the characters in the range [start, limit) into the UnicodeString target. More...

int32_t extract (UTextOffset start, int32_t startLength, char *target, const char *codepage = 0) const
 Copy the characters in the range [start, start + length) into an array of characters in a specified codepage. More...

int32_t extract (UTextOffset start, int32_t startLength, char *target, uint32_t targetLength, const char *codepage = 0) const
 Copy the characters in the range [start, start + length) into an array of characters in a specified codepage. More...

int32_t length (void) const
 Return the length of the UnicodeString object. More...

UBool empty (void) const
 Determine if this string is empty. More...

int32_t hashCode (void) const
 Generate a hash code for this object. More...

UBool isBogus (void) const
 Determine if this string is still valid. More...

UnicodeString& operator= (const UnicodeString& srcText)
 Assignment operator. More...

UnicodeString& operator= (UChar ch)
 Assignment operator. More...

UnicodeString& operator= (UChar32 ch)
 Assignment operator. More...

UnicodeString& setTo (const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength)
 Set the text in the UnicodeString object to the characters in srcText in the range [srcStart, srcStart + srcLength). More...

UnicodeString& setTo (const UnicodeString& srcText)
 Set the text in the UnicodeString object to the characters in srcText. More...

UnicodeString& setTo (const UChar *srcChars, int32_t srcLength)
 Set the characters in the UnicodeString object to the characters in srcChars. More...

UnicodeString& setTo (UChar srcChar)
 Set the characters in the UnicodeString object to the code point srcChar. More...

UnicodeString& setTo (UChar32 srcChar)
 Set the characters in the UnicodeString object to the code point srcChar. More...

UnicodeString& setTo (UBool isTerminated, const UChar *text, int32_t textLength)
 Aliasing setTo() function, analogous to the readonly-aliasing UChar* constructor. More...

UnicodeString& setTo (UChar *buffer, int32_t buffLength, int32_t buffCapacity)
 Aliasing setTo() function, analogous to the writeable-aliasing UChar* constructor. More...

UnicodeString& setCharAt (UTextOffset offset, UChar ch)
 Set the character at the specified offset to the specified character. More...

UnicodeString& operator+= (UChar ch)
 Append operator. More...

UnicodeString& operator+= (UChar32 ch)
 Append operator. More...

UnicodeString& operator+= (const UnicodeString& srcText)
 Append operator. More...

UnicodeString& append (const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength)
 Append the characters in srcText in the range [srcStart, srcStart + srcLength) to the UnicodeString object at offset start. More...

UnicodeString& append (const UnicodeString& srcText)
 Append the characters in srcText to the UnicodeString object at offset start. More...

UnicodeString& append (const UChar *srcChars, UTextOffset srcStart, int32_t srcLength)
 Append the characters in srcChars in the range [srcStart, srcStart + srcLength) to the UnicodeString object at offset start. More...

UnicodeString& append (const UChar *srcChars, int32_t srcLength)
 Append the characters in srcChars to the UnicodeString object at offset start. More...

UnicodeString& append (UChar srcChar)
 Append the code point srcChar to the UnicodeString object. More...

UnicodeString& append (UChar32 srcChar)
 Append the code point srcChar to the UnicodeString object. More...

UnicodeString& insert (UTextOffset start, const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength)
 Insert the characters in srcText in the range [srcStart, srcStart + srcLength) into the UnicodeString object at offset start. More...

UnicodeString& insert (UTextOffset start, const UnicodeString& srcText)
 Insert the characters in srcText into the UnicodeString object at offset start. More...

UnicodeString& insert (UTextOffset start, const UChar *srcChars, UTextOffset srcStart, int32_t srcLength)
 Insert the characters in srcChars in the range [srcStart, srcStart + srcLength) into the UnicodeString object at offset start. More...

UnicodeString& insert (UTextOffset start, const UChar *srcChars, int32_t srcLength)
 Insert the characters in srcChars into the UnicodeString object at offset start. More...

UnicodeString& insert (UTextOffset start, UChar srcChar)
 Insert the code point srcChar into the UnicodeString object at offset start. More...

UnicodeString& insert (UTextOffset start, UChar32 srcChar)
 Insert the code point srcChar into the UnicodeString object at offset start. More...

UnicodeString& replace (UTextOffset start, int32_t length, const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength)
 Replace the characters in the range [start, start + length) with the characters in srcText in the range [srcStart, srcStart + srcLength). More...

UnicodeString& replace (UTextOffset start, int32_t length, const UnicodeString& srcText)
 Replace the characters in the range [start, start + length) with the characters in srcText. More...

UnicodeString& replace (UTextOffset start, int32_t length, const UChar *srcChars, UTextOffset srcStart, int32_t srcLength)
 Replace the characters in the range [start, start + length) with the characters in srcChars in the range [srcStart, srcStart + srcLength). More...

UnicodeString& replace (UTextOffset start, int32_t length, const UChar *srcChars, int32_t srcLength)
 Replace the characters in the range [start, start + length) with the characters in srcChars. More...

UnicodeString& replace (UTextOffset start, int32_t length, UChar srcChar)
 Replace the characters in the range [start, start + length) with the code point srcChar. More...

UnicodeString& replace (UTextOffset start, int32_t length, UChar32 srcChar)
 Replace the characters in the range [start, start + length) with the code point srcChar. More...

UnicodeString& replaceBetween (UTextOffset start, UTextOffset limit, const UnicodeString& srcText)
 Replace the characters in the range [start, limit) with the characters in srcText. More...

UnicodeString& replaceBetween (UTextOffset start, UTextOffset limit, const UnicodeString& srcText, UTextOffset srcStart, UTextOffset srcLimit)
 Replace the characters in the range [start, limit) with the characters in srcText in the range [srcStart, srcLimit). More...

virtual void handleReplaceBetween (UTextOffset start, UTextOffset limit, const UnicodeString& text)
 Replace a substring of this object with the given text. More...

virtual void copy (int32_t start, int32_t limit, int32_t dest)
 Copy a substring of this object, retaining attribute (out-of-band) information. More...

UnicodeString& findAndReplace (const UnicodeString& oldText, const UnicodeString& newText)
 Replace all occurrences of characters in oldText with the characters in newText. More...

UnicodeString& findAndReplace (UTextOffset start, int32_t length, const UnicodeString& oldText, const UnicodeString& newText)
 Replace all occurrences of characters in oldText with characters in newText in the range [start, start + length). More...

UnicodeString& findAndReplace (UTextOffset start, int32_t length, const UnicodeString& oldText, UTextOffset oldStart, int32_t oldLength, const UnicodeString& newText, UTextOffset newStart, int32_t newLength)
 Replace all occurrences of characters in oldText in the range [oldStart, oldStart + oldLength) with the characters in newText in the range [newStart, newStart + newLength) in the range [start, start + length). More...

UnicodeString& remove (void)
 Remove all characters from the UnicodeString object. More...

UnicodeString& remove (UTextOffset start, int32_t length = (int32_t)INT32_MAX)
 Remove the characters in the range [start, start + length) from the UnicodeString object. More...

UnicodeString& removeBetween (UTextOffset start, UTextOffset limit = (int32_t)INT32_MAX)
 Remove the characters in the range [start, limit) from the UnicodeString object. More...

UBool padLeading (int32_t targetLength, UChar padChar = 0x0020)
 Pad the start of this UnicodeString with the character padChar. More...

UBool padTrailing (int32_t targetLength, UChar padChar = 0x0020)
 Pad the end of this UnicodeString with the character padChar. More...

UBool truncate (int32_t targetLength)
 Truncate this UnicodeString to the targetLength. More...

UnicodeString& trim (void)
 Trims leading and trailing whitespace from this UnicodeString. More...

UnicodeString& reverse (void)
 Reverse this UnicodeString in place. More...

UnicodeString& reverse (UTextOffset start, int32_t length)
 Reverse the range [start, start + length) in this UnicodeString. More...

UnicodeString& toUpper (void)
 Convert the characters in this to UPPER CASE following the conventions of the default locale. More...

UnicodeString& toUpper (const Locale& locale)
 Convert the characters in this to UPPER CASE following the conventions of a specific locale. More...

UnicodeString& toLower (void)
 Convert the characters in this to lower case following the conventions of the default locale. More...

UnicodeString& toLower (const Locale& locale)
 Convert the characters in this to lower case following the conventions of a specific locale. More...

UnicodeString& foldCase (uint32_t options=U_FOLD_CASE_DEFAULT)
 Case-fold the characters in this string. More...

 UnicodeString ()
 Construct an empty UnicodeString. More...

 UnicodeString (int32_t capacity, UChar32 c, int32_t count)
 Construct a UnicodeString with capacity to hold capacity UChars. More...

 UnicodeString (UChar ch)
 Single UChar32 (code point) constructor. More...

 UnicodeString (UChar32 ch)
 Single UChar32 (code point) constructor. More...

 UnicodeString (const UChar *text)
 UChar* constructor. More...

 UnicodeString (const UChar *text, int32_t textLength)
 UChar* constructor. More...

 UnicodeString (UBool isTerminated, const UChar *text, int32_t textLength)
 Readonly-aliasing UChar* constructor. More...

 UnicodeString (UChar *buffer, int32_t buffLength, int32_t buffCapacity)
 Writeable-aliasing UChar* constructor. More...

 UnicodeString (const char *codepageData, const char *codepage = 0)
 char* constructor. More...

 UnicodeString (const char *codepageData, int32_t dataLength, const char *codepage = 0)
 char* constructor. More...

 UnicodeString (const UnicodeString& that)
 Copy constructor. More...

 ~UnicodeString ()
 Destructor. More...

int32_t numDisplayCells (UTextOffset start = 0, int32_t length = INT32_MAX, UBool asian = TRUE) const
 Returns the number of display cells occupied by the range [start, length). More...

UCharReference operator[] (UTextOffset pos)
UnicodeString unescape () const
 Unescape a string of characters and return a string containing the result. More...

UChar32 unescapeAt (int32_t &offset) const
 Unescape a single escape sequence and return the represented character. More...

const UChargetUChars () const

Protected Methods

virtual UChar getCharAt (UTextOffset offset) const
 The change in Replaceable to use virtual getCharAt() allows UnicodeString::charAt() to be inline again (see jitterbug 709).

virtual UChar32 getChar32At (UTextOffset offset) const
 The change in Replaceable to use virtual getChar32At() allows UnicodeString::char32At() to be inline again (see jitterbug 709).


Private Types

enum  {
  US_STACKBUF_SIZE = 3, kInvalidUChar = 0xffff, kGrowSize = 128, kInvalidHashCode = 0,
  kEmptyHashCode = 1, kIsBogus = 1, kUsingStackBuffer = 2, kRefCounted = 4,
  kBufferIsReadonly = 8, kShortString = kUsingStackBuffer, kLongString = kRefCounted, kReadonlyAlias = kBufferIsReadonly,
  kWriteableAlias = 0
}

Private Methods

int8_t doCompare (UTextOffset start, int32_t length, const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength) const
int8_t doCompare (UTextOffset start, int32_t length, const UChar *srcChars, UTextOffset srcStart, int32_t srcLength) const
int8_t doCompareCodePointOrder (UTextOffset start, int32_t length, const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength) const
int8_t doCompareCodePointOrder (UTextOffset start, int32_t length, const UChar *srcChars, UTextOffset srcStart, int32_t srcLength) const
int8_t doCaseCompare (UTextOffset start, int32_t length, const UnicodeString &srcText, UTextOffset srcStart, int32_t srcLength, uint32_t options) const
int8_t doCaseCompare (UTextOffset start, int32_t length, const UChar *srcChars, UTextOffset srcStart, int32_t srcLength, uint32_t options) const
UTextOffset doIndexOf (UChar c, UTextOffset start, int32_t length) const
UTextOffset doLastIndexOf (UChar c, UTextOffset start, int32_t length) const
void doExtract (UTextOffset start, int32_t length, UChar *dst, UTextOffset dstStart) const
void doExtract (UTextOffset start, int32_t length, UnicodeString& target) const
UChar doCharAt (UTextOffset offset) const
UnicodeString& doReplace (UTextOffset start, int32_t length, const UnicodeString& srcText, UTextOffset srcStart, int32_t srcLength)
UnicodeString& doReplace (UTextOffset start, int32_t length, const UChar *srcChars, UTextOffset srcStart, int32_t srcLength)
UnicodeString& doReverse (UTextOffset start, int32_t length)
int32_t doHashCode (void) const
UChargetArrayStart (void)
const UChargetArrayStart (void) const
int32_t getCapacity (void) const
UBool allocate (int32_t capacity)
void releaseArray ()
void setToBogus (void)
void pinIndices (UTextOffset& start, int32_t& length) const
void doCodepageCreate (const char *codepageData, int32_t dataLength, const char *codepage)
UBool cloneArrayIfNeeded (int32_t newCapacity = -1, int32_t growCapacity = -1, UBool doCopyArray = TRUE, int32_t **pBufferToDelete = 0, UBool forceClone = FALSE)
UnicodeString& caseMap (const Locale& locale, uint32_t options, int32_t toWhichCase)
int32_t addRef (void)
int32_t removeRef (void)
int32_t refCount (void) const
int32_t setRefCount (int32_t count)

Private Attributes

int32_t fCapacity
UCharfArray
uint16_t fFlags
UChar fStackBuffer [ US_STACKBUF_SIZE ]

Static Private Methods

UBool U_CALLCONV growBuffer (void *context, UChar **buffer, int32_t *pCapacity, int32_t reqCapacity, int32_t length)
UConvertergetDefaultConverter (UErrorCode& status)
void releaseDefaultConverter (UConverter *converter)

Static Private Attributes

UConverterfgDefaultConverter

Friends

class  UnicodeStringStreamer
class  UnicodeConverter
class  StringCharacterIterator

Detailed Description

UnicodeString is a string class that stores Unicode characters directly and provides similar functionality as the Java String class.

It is a concrete implementation of the abstract class Replaceable (for transliteration).

In ICU, strings are stored and used as UTF-16. This means that a string internally consists of 16-bit Unicode code units.
UTF-16 is a variable-length encoding: A Unicode character may be stored with either one code unit &mdash; which is the most common case &mdash; or with a matched pair of special code units ("surrogates"). The data type for code units is UChar.
For single-character handling, a Unicode character code point is a scalar value in the range 0..0x10ffff. ICU uses the UChar32 type for code points.

Indexes and offsets into and lengths of strings always count code units, not code points. This is the same as with multi-byte char* strings in traditional string handling. Operations on partial strings typically do not test for code point boundaries. If necessary, the user needs to take care of such boundaries by testing for the code unit values or by using functions like UnicodeString::getCharStart() and UnicodeString::getCharLimit() (or, in C, the equivalent macros UTF_SET_CHAR_START() and UTF_SET_CHAR_LIMIT(), see utf.h).

UnicodeString uses four storage models:

  1. Short strings are normally stored inside the UnicodeString object itself. The object has fields for the "bookkeeping" and a small UChar array. When the object is copied, then the internal characters are copied into the destination object.
  2. Longer strings are normally stored in allocated memory. The allocated UChar array is preceeded by a reference counter. When the string object is copied, then the allocated buffer is shared by incrementing the reference counter.
  3. A UnicodeString can be constructed or setTo() such that it aliases a read-only buffer instead of copying the characters. In this case, the string object uses this aliased buffer for as long as it is not modified, and it will never attempt to modify or release the buffer. This has copy-on-write semantics: When the string object is modified, then the buffer contents is first copied into writeable memory (inside the object for short strings, or allocated buffer for longer strings). When a UnicodeString with a read-only alias is assigned to another UnicodeString, then both string objects will share the same read-only alias.
  4. A UnicodeString can be constructed or setTo() such that it aliases a writeable buffer instead of copying the characters. The difference from the above is that the string object will write through to this aliased buffer for write operations. Only when the capacity of the buffer is not sufficient is a new buffer allocated and the contents copied. An efficient way to get the string contents into the original buffer is to use the extract(..., UChar *dst, ...) function: It will only copy the string contents if the dst buffer is different from the buffer of the string object itself. If a string grows and shrinks during a sequence of operations, then it will not use the same buffer any more, but may fit into it again. When a UnicodeString with a writeable alias is assigned to another UnicodeString, then the contents is always copied. The destination string will not alias to the buffer that the source string aliases.

See also:
Unicode

Definition at line 129 of file unistr.h.


Member Enumeration Documentation

anonymous enum [private]
 

Enumeration values:
US_STACKBUF_SIZE  
kInvalidUChar  
kGrowSize  
kInvalidHashCode  
kEmptyHashCode  
kIsBogus  
kUsingStackBuffer  
kRefCounted  
kBufferIsReadonly  
kShortString  
kLongString  
kReadonlyAlias  
kWriteableAlias  

Definition at line 2384 of file unistr.h.


Constructor & Destructor Documentation

UnicodeString::UnicodeString ( )
 

Construct an empty UnicodeString.

Stable:

UnicodeString::UnicodeString ( int32_t capacity,
UChar32 c,
int32_t count )
 

Construct a UnicodeString with capacity to hold capacity UChars.

Parameters:
capacity   the number of UChars this UnicodeString should hold before a resize is necessary; if count is greater than 0 and count code points c take up more space than capacity, then capacity is adjusted accordingly.
c   is used to initially fill the string
count   specifies how many code points c are to be written in the string
Draft:

UnicodeString::UnicodeString ( UChar ch )
 

Single UChar32 (code point) constructor.

Parameters:
ch   the character to place in the UnicodeString
Draft:

UnicodeString::UnicodeString ( UChar32 ch )
 

Single UChar32 (code point) constructor.

Parameters:
ch   the character to place in the UnicodeString
Draft:

UnicodeString::UnicodeString ( const UChar * text )
 

UChar* constructor.

Parameters:
text   The characters to place in the UnicodeString. text must be NULL (U+0000) terminated.
Stable:

UnicodeString::UnicodeString ( const UChar * text,
int32_t textLength )
 

UChar* constructor.

Parameters:
text   The characters to place in the UnicodeString.
textLength   The number of Unicode characters in text to copy.
Stable:

UnicodeString::UnicodeString ( UBool isTerminated,
const UChar * text,
int32_t textLength )
 

Readonly-aliasing UChar* constructor.

The text will be used for the UnicodeString object, but it will not be released when the UnicodeString is destroyed. This has copy-on-write semantics: When the string is modified, then the buffer is first copied into newly allocated memory. The aliased buffer is never modified. In an assignment to another UnicodeString, the text will be aliased again, so that both strings then alias the same readonly-text.

Parameters:
isTerminated   specifies if text is NUL-terminated. This must be true if textLength==-1.
text   The characters to alias for the UnicodeString.
textLength   The number of Unicode characters in text to alias. If -1, then this constructor will determine the length by calling u_strlen().
Stable:

UnicodeString::UnicodeString ( UChar * buffer,
int32_t buffLength,
int32_t buffCapacity )
 

Writeable-aliasing UChar* constructor.

The text will be used for the UnicodeString object, but it will not be released when the UnicodeString is destroyed. This has write-through semantics: For as long as the capacity of the buffer is sufficient, write operations will directly affect the buffer. When more capacity is necessary, then a new buffer will be allocated and the contents copied as with regularly constructed strings. In an assignment to another UnicodeString, the buffer will be copied. The extract(UChar *dst) function detects whether the dst pointer is the same as the string buffer itself and will in this case not copy the contents.

Parameters:
buffer   The characters to alias for the UnicodeString.
buffLength   The number of Unicode characters in buffer to alias.
buffCapacity   The size of buffer in UChars.
Draft:

UnicodeString::UnicodeString ( const char * codepageData,
const char * codepage = 0 )
 

char* constructor.

Parameters:
codepageData   an array of bytes, null-terminated
codepage   the encoding of codepageData. The special value 0 for codepage indicates that the text is in the platform's default codepage. If codepage is an empty string (""), then a simple conversion is performed on the codepage-invariant subset ("invariant characters") of the platform encoding. See utypes.h.
Stable:

UnicodeString::UnicodeString ( const char * codepageData,
int32_t dataLength,
const char * codepage = 0 )
 

char* constructor.

Parameters:
codepageData   an array of bytes.
dataLength   The number of bytes in codepageData.
codepage   the encoding of codepageData. The special value 0 for codepage indicates that the text is in the platform's default codepage. If codepage is an empty string (""), then a simple conversion is performed on the codepage-invariant subset ("invariant characters") of the platform encoding. See utypes.h.
Stable:

UnicodeString::UnicodeString ( const UnicodeString & that )
 

Copy constructor.

Parameters:
that   The UnicodeString object to copy.
Stable:

UnicodeString::~UnicodeString ( )
 

Destructor.

Stable:


Member Function Documentation

int32_t UnicodeString::addRef ( void ) [inline, private]
 

Definition at line 3368 of file unistr.h.

UBool UnicodeString::allocate ( int32_t capacity ) [private]
 

UnicodeString & UnicodeString::append ( UChar32 srcChar ) [inline]
 

Append the code point srcChar to the UnicodeString object.

Parameters:
srcChar   the code point to append
Returns:
a reference to this
Draft:

Definition at line 3237 of file unistr.h.

UnicodeString & UnicodeString::append ( UChar srcChar ) [inline]
 

Append the code point srcChar to the UnicodeString object.

Parameters:
srcChar   the code unit to append
Returns:
a reference to this
Draft:

Definition at line 3237 of file unistr.h.

UnicodeString & UnicodeString::append ( const UChar * srcChars,
int32_t srcLength ) [inline]
 

Append the characters in srcChars to the UnicodeString object at offset start.

srcChars is not modified.

Parameters:
srcChars   the source for the new characters
srcLength   the number of Unicode characters in srcChars
Returns:
a reference to this
Stable:

Definition at line 3232 of file unistr.h.

UnicodeString & UnicodeString::append ( const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength ) [inline]
 

Append the characters in srcChars in the range [srcStart, srcStart + srcLength) to the UnicodeString object at offset start.

srcChars is not modified.

Parameters:
srcChars   the source for the new characters
srcStart   the offset into srcChars where new characters will be obtained
srcLength   the number of characters in srcChars in the append string
Returns:
a reference to this
Stable:

Definition at line 3226 of file unistr.h.

UnicodeString & UnicodeString::append ( const UnicodeString & srcText ) [inline]
 

Append the characters in srcText to the UnicodeString object at offset start.

srcText is not modified.

Parameters:
srcText   the source for the new characters
Returns:
a reference to this
Stable:

Definition at line 3222 of file unistr.h.

UnicodeString & UnicodeString::append ( const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength ) [inline]
 

Append the characters in srcText in the range [srcStart, srcStart + srcLength) to the UnicodeString object at offset start.

srcText is not modified.

Parameters:
srcText   the source for the new characters
srcStart   the offset into srcText where new characters will be obtained
srcLength   the number of characters in srcText in the append string
Returns:
a reference to this
Stable:

Definition at line 3216 of file unistr.h.

int8_t UnicodeString::caseCompare ( UTextOffset start,
int32_t length,
const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength,
uint32_t options ) const [inline]
 

Compare two strings case-insensitively using full case folding.

This is equivalent to this->foldCase(options).compare(srcChars.foldCase(options)).

Parameters:
start   The start offset in this string at which the compare operation begins.
length   The number of code units from this string to compare.
srcChars   A pointer to another string to compare this one to.
srcStart   The start offset in that string at which the compare operation begins.
srcLength   The number of code units from that string to compare.
options   Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I
Returns:
A negative, zero, or positive integer indicating the comparison result.
Draft:

Definition at line 2703 of file unistr.h.

int8_t UnicodeString::caseCompare ( UTextOffset start,
int32_t length,
const UChar * srcChars,
uint32_t options ) const [inline]
 

Compare two strings case-insensitively using full case folding.

This is equivalent to this->foldCase(options).compare(srcChars.foldCase(options)).

Parameters:
start   The start offset in this string at which the compare operation begins.
length   The number of code units from this string to compare.
srcChars   A pointer to another string to compare this one to.
options   Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I
Returns:
A negative, zero, or positive integer indicating the comparison result.
Draft:

Definition at line 2695 of file unistr.h.

int8_t UnicodeString::caseCompare ( const UChar * srcChars,
int32_t srcLength,
uint32_t options ) const [inline]
 

Compare two strings case-insensitively using full case folding.

This is equivalent to this->foldCase(options).compare(srcChars.foldCase(options)).

Parameters:
srcChars   A pointer to another string to compare this one to.
srcLength   The number of code units from that string to compare.
options   Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I
Returns:
A negative, zero, or positive integer indicating the comparison result.
Draft:

Definition at line 2678 of file unistr.h.

int8_t UnicodeString::caseCompare ( UTextOffset start,
int32_t length,
const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength,
uint32_t options ) const [inline]
 

Compare two strings case-insensitively using full case folding.

This is equivalent to this->foldCase(options).compare(srcText.foldCase(options)).

Parameters:
start   The start offset in this string at which the compare operation begins.
length   The number of code units from this string to compare.
srcText   Another string to compare this one to.
srcStart   The start offset in that string at which the compare operation begins.
srcLength   The number of code units from that string to compare.
options   Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I
Returns:
A negative, zero, or positive integer indicating the comparison result.
Draft:

Definition at line 2685 of file unistr.h.

int8_t UnicodeString::caseCompare ( UTextOffset start,
int32_t length,
const UnicodeString & srcText,
uint32_t options ) const [inline]
 

Compare two strings case-insensitively using full case folding.

This is equivalent to this->foldCase(options).compare(srcText.foldCase(options)).

Parameters:
start   The start offset in this string at which the compare operation begins.
length   The number of code units from this string to compare.
srcText   Another string to compare this one to.
options   Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I
Returns:
A negative, zero, or positive integer indicating the comparison result.
Draft:

Definition at line 2670 of file unistr.h.

int8_t UnicodeString::caseCompare ( const UnicodeString & text,
uint32_t options ) const [inline]
 

Compare two strings case-insensitively using full case folding.

This is equivalent to this->foldCase(options).compare(text.foldCase(options)).

Parameters:
text   Another string to compare this one to.
options   Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I
Returns:
A negative, zero, or positive integer indicating the comparison result.
Draft:

Definition at line 2665 of file unistr.h.

int8_t UnicodeString::caseCompareBetween ( UTextOffset start,
UTextOffset limit,
const UnicodeString & srcText,
UTextOffset srcStart,
UTextOffset srcLimit,
uint32_t options ) const [inline]
 

Compare two strings case-insensitively using full case folding.

This is equivalent to this->foldCase(options).compareBetween(text.foldCase(options)).

Parameters:
start   The start offset in this string at which the compare operation begins.
limit   The offset after the last code unit from this string to compare.
srcText   Another string to compare this one to.
srcStart   The start offset in that string at which the compare operation begins.
srcLimit   The offset after the last code unit from that string to compare.
options   Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I
Returns:
A negative, zero, or positive integer indicating the comparison result.
Draft:

Definition at line 2713 of file unistr.h.

UnicodeString& UnicodeString::caseMap ( const Locale & locale,
uint32_t options,
int32_t toWhichCase ) [private]
 

UChar32 UnicodeString::char32At ( UTextOffset offset ) const [inline]
 

Return the code point that contains the code unit at offset offset.

Parameters:
offset   a valid offset into the text that indicates the text offset of any of the code units that will be assembled into a code point (21-bit value) and returned
Returns:
the code point of text at offset
Draft:

Reimplemented from Replaceable.

Definition at line 3119 of file unistr.h.

UChar UnicodeString::charAt ( UTextOffset offset ) const [inline]
 

Return the code unit at offset offset.

Parameters:
offset   a valid offset into the text
Returns:
the code unit at offset offset
Draft:

Reimplemented from Replaceable.

Definition at line 3111 of file unistr.h.

Referenced by DecimalFormatSymbols::getDecimalSeparator(), DecimalFormatSymbols::getDigit(), DecimalFormatSymbols::getExponentialSymbol(), DecimalFormatSymbols::getGroupingSeparator(), DecimalFormatSymbols::getMinusSign(), DecimalFormatSymbols::getMonetaryDecimalSeparator(), DecimalFormat::getPadCharacter(), DecimalFormatSymbols::getPadEscape(), DecimalFormatSymbols::getPatternSeparator(), DecimalFormatSymbols::getPerMill(), DecimalFormatSymbols::getPercent(), DecimalFormatSymbols::getPlusSign(), DecimalFormatSymbols::getZeroDigit(), UCharReference::operator UChar(), and UCharReference::operator=().

UBool UnicodeString::cloneArrayIfNeeded ( int32_t newCapacity = -1,
int32_t growCapacity = -1,
UBool doCopyArray = TRUE,
int32_t ** pBufferToDelete = 0,
UBool forceClone = FALSE ) [private]
 

int8_t UnicodeString::compare ( UTextOffset start,
int32_t length,
const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength ) const [inline]
 

Compare the characters bitwise in the range [start, start + length) with the characters in srcChars in the range [srcStart, srcStart + srcLength).

Parameters:
start   the offset at which the compare operation begins
length   the number of characters in this to compare
srcChars   the characters to be compared
srcStart   the offset into srcChars to start comparison
srcLength   the number of characters in srcChars to compare
Returns:
The result of bitwise character comparison: 0 if text contains the same characters as this, -1 if the characters in text are bitwise less than the characters in this, +1 if the characters in text are bitwise greater than the characters in this.
Stable:

Definition at line 2568 of file unistr.h.

int8_t UnicodeString::compare ( UTextOffset start,
int32_t length,
const UChar * srcChars ) const [inline]
 

Compare the characters bitwise in the range [start, start + length) with the first length characters in srcChars.

Parameters:
start   the offset at which the compare operation begins
length   the number of characters to compare.
srcChars   the characters to be compared
Returns:
The result of bitwise character comparison: 0 if text contains the same characters as this, -1 if the characters in text are bitwise less than the characters in this, +1 if the characters in text are bitwise greater than the characters in this.
Stable:

Definition at line 2562 of file unistr.h.

int8_t UnicodeString::compare ( const UChar * srcChars,
int32_t srcLength ) const [inline]
 

Compare the characters bitwise in this UnicodeString with the first srcLength characters in srcChars.

Parameters:
srcChars   The characters to compare to this UnicodeString.
srcLength   the number of characters in srcChars to compare
Returns:
The result of bitwise character comparison: 0 if text contains the same characters as this, -1 if the characters in text are bitwise less than the characters in this, +1 if the characters in text are bitwise greater than the characters in this.
Stable:

Definition at line 2549 of file unistr.h.

int8_t UnicodeString::compare ( UTextOffset start,
int32_t length,
const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength ) const [inline]
 

Compare the characters bitwise in the range [start, start + length) with the characters in srcText in the range [srcStart, srcStart + srcLength).

Parameters:
start   the offset at which the compare operation begins
length   the number of characters in this to compare.
srcText   the text to be compared
srcStart   the offset into srcText to start comparison
srcLength   the number of characters in src to compare
Returns:
The result of bitwise character comparison: 0 if text contains the same characters as this, -1 if the characters in text are bitwise less than the characters in this, +1 if the characters in text are bitwise greater than the characters in this.
Stable:

Definition at line 2554 of file unistr.h.

int8_t UnicodeString::compare ( UTextOffset start,
int32_t length,
const UnicodeString & srcText ) const [inline]
 

Compare the characters bitwise in the range [start, start + length) with the characters in srcText.

Parameters:
start   the offset at which the compare operation begins
length   the number of characters of text to compare.
srcText   the text to be compared
Returns:
The result of bitwise character comparison: 0 if text contains the same characters as this, -1 if the characters in text are bitwise less than the characters in this, +1 if the characters in text are bitwise greater than the characters in this.
Stable:

Definition at line 2543 of file unistr.h.

int8_t UnicodeString::compare ( const UnicodeString & text ) const [inline]
 

Compare the characters bitwise in this UnicodeString to the characters in text.

Parameters:
text   The UnicodeString to compare to this one.
Returns:
The result of bitwise character comparison: 0 if text contains the same characters as this, -1 if the characters in text are bitwise less than the characters in this, +1 if the characters in text are bitwise greater than the characters in this.
Stable:

Definition at line 2539 of file unistr.h.

Referenced by DecimalFormatSymbols::compareCurrencySymbol(), DecimalFormatSymbols::compareInfinity(), DecimalFormatSymbols::compareInternationalCurrencySymbol(), DecimalFormatSymbols::compareNaN(), and startsWith().

int8_t UnicodeString::compareBetween ( UTextOffset start,
UTextOffset limit,
const UnicodeString & srcText,
UTextOffset srcStart,
UTextOffset srcLimit ) const [inline]
 

Compare the characters bitwise in the range [start, limit) with the characters in srcText in the range [srcStart, srcLimit).

Parameters:
start   the offset at which the compare operation begins
limit   the offset immediately following the compare operation
srcText   the text to be compared
srcStart   the offset into srcText to start comparison
srcLimit   the offset into srcText to limit comparison
Returns:
The result of bitwise character comparison: 0 if text contains the same characters as this, -1 if the characters in text are bitwise less than the characters in this, +1 if the characters in text are bitwise greater than the characters in this.
Stable:

Definition at line 2576 of file unistr.h.

int8_t UnicodeString::compareCodePointOrder ( UTextOffset start,
int32_t length,
const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength ) const [inline]
 

Compare two Unicode strings in code point order.

This is different in UTF-16 from how compare(), operator==, startsWith() etc. work if supplementary characters are present:

In UTF-16, supplementary characters (with code points U+10000 and above) are stored with pairs of surrogate code units. These have values from 0xd800 to 0xdfff, which means that they compare as less than some other BMP characters like U+feff. This function compares Unicode strings in code point order. If either of the UTF-16 strings is malformed (i.e., it contains unpaired surrogates), then the result is not defined.

Parameters:
start   The start offset in this string at which the compare operation begins.
length   The number of code units from this string to compare.
srcChars   A pointer to another string to compare this one to.
srcStart   The start offset in that string at which the compare operation begins.
srcLength   The number of code units from that string to compare.
Returns:
a negative/zero/positive integer corresponding to whether this string is less than/equal to/greater than the second one in code point order
Draft:

Definition at line 2631 of file unistr.h.

int8_t UnicodeString::compareCodePointOrder ( UTextOffset start,
int32_t length,
const UChar * srcChars ) const [inline]
 

Compare two Unicode strings in code point order.

This is different in UTF-16 from how compare(), operator==, startsWith() etc. work if supplementary characters are present:

In UTF-16, supplementary characters (with code points U+10000 and above) are stored with pairs of surrogate code units. These have values from 0xd800 to 0xdfff, which means that they compare as less than some other BMP characters like U+feff. This function compares Unicode strings in code point order. If either of the UTF-16 strings is malformed (i.e., it contains unpaired surrogates), then the result is not defined.

Parameters:
start   The start offset in this string at which the compare operation begins.
length   The number of code units from this string to compare.
srcChars   A pointer to another string to compare this one to.
Returns:
a negative/zero/positive integer corresponding to whether this string is less than/equal to/greater than the second one in code point order
Draft:

Definition at line 2625 of file unistr.h.

int8_t UnicodeString::compareCodePointOrder ( const UChar * srcChars,
int32_t srcLength ) const [inline]
 

Compare two Unicode strings in code point order.

This is different in UTF-16 from how compare(), operator==, startsWith() etc. work if supplementary characters are present:

In UTF-16, supplementary characters (with code points U+10000 and above) are stored with pairs of surrogate code units. These have values from 0xd800 to 0xdfff, which means that they compare as less than some other BMP characters like U+feff. This function compares Unicode strings in code point order. If either of the UTF-16 strings is malformed (i.e., it contains unpaired surrogates), then the result is not defined.

Parameters:
srcChars   A pointer to another string to compare this one to.
srcLength   The number of code units from that string to compare.
Returns:
a negative/zero/positive integer corresponding to whether this string is less than/equal to/greater than the second one in code point order
Draft:

Definition at line 2612 of file unistr.h.

int8_t UnicodeString::compareCodePointOrder ( UTextOffset start,
int32_t length,
const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength ) const [inline]
 

Compare two Unicode strings in code point order.

This is different in UTF-16 from how compare(), operator==, startsWith() etc. work if supplementary characters are present:

In UTF-16, supplementary characters (with code points U+10000 and above) are stored with pairs of surrogate code units. These have values from 0xd800 to 0xdfff, which means that they compare as less than some other BMP characters like U+feff. This function compares Unicode strings in code point order. If either of the UTF-16 strings is malformed (i.e., it contains unpaired surrogates), then the result is not defined.

Parameters:
start   The start offset in this string at which the compare operation begins.
length   The number of code units from this string to compare.
srcText   Another string to compare this one to.
srcStart   The start offset in that string at which the compare operation begins.
srcLength   The number of code units from that string to compare.
Returns:
a negative/zero/positive integer corresponding to whether this string is less than/equal to/greater than the second one in code point order
Draft:

Definition at line 2617 of file unistr.h.

int8_t UnicodeString::compareCodePointOrder ( UTextOffset start,
int32_t length,
const UnicodeString & srcText ) const [inline]
 

Compare two Unicode strings in code point order.

This is different in UTF-16 from how compare(), operator==, startsWith() etc. work if supplementary characters are present:

In UTF-16, supplementary characters (with code points U+10000 and above) are stored with pairs of surrogate code units. These have values from 0xd800 to 0xdfff, which means that they compare as less than some other BMP characters like U+feff. This function compares Unicode strings in code point order. If either of the UTF-16 strings is malformed (i.e., it contains unpaired surrogates), then the result is not defined.

Parameters:
start   The start offset in this string at which the compare operation begins.
length   The number of code units from this string to compare.
srcText   Another string to compare this one to.
Returns:
a negative/zero/positive integer corresponding to whether this string is less than/equal to/greater than the second one in code point order
Draft:

Definition at line 2606 of file unistr.h.

int8_t UnicodeString::compareCodePointOrder ( const UnicodeString & text ) const [inline]
 

Compare two Unicode strings in code point order.

This is different in UTF-16 from how compare(), operator==, startsWith() etc. work if supplementary characters are present:

In UTF-16, supplementary characters (with code points U+10000 and above) are stored with pairs of surrogate code units. These have values from 0xd800 to 0xdfff, which means that they compare as less than some other BMP characters like U+feff. This function compares Unicode strings in code point order. If either of the UTF-16 strings is malformed (i.e., it contains unpaired surrogates), then the result is not defined.

Parameters:
text   Another string to compare this one to.
Returns:
a negative/zero/positive integer corresponding to whether this string is less than/equal to/greater than the second one in code point order
Draft:

Definition at line 2602 of file unistr.h.

int8_t UnicodeString::compareCodePointOrderBetween ( UTextOffset start,
UTextOffset limit,
const UnicodeString & srcText,
UTextOffset srcStart,
UTextOffset srcLimit ) const [inline]
 

Compare two Unicode strings in code point order.

This is different in UTF-16 from how compare(), operator==, startsWith() etc. work if supplementary characters are present:

In UTF-16, supplementary characters (with code points U+10000 and above) are stored with pairs of surrogate code units. These have values from 0xd800 to 0xdfff, which means that they compare as less than some other BMP characters like U+feff. This function compares Unicode strings in code point order. If either of the UTF-16 strings is malformed (i.e., it contains unpaired surrogates), then the result is not defined.

Parameters:
start   The start offset in this string at which the compare operation begins.
limit   The offset after the last code unit from this string to compare.
srcText   Another string to compare this one to.
srcStart   The start offset in that string at which the compare operation begins.
srcLimit   The offset after the last code unit from that string to compare.
Returns:
a negative/zero/positive integer corresponding to whether this string is less than/equal to/greater than the second one in code point order
Draft:

Definition at line 2639 of file unistr.h.

void UnicodeString::copy ( int32_t start,
int32_t limit,
int32_t dest ) [virtual]
 

Copy a substring of this object, retaining attribute (out-of-band) information.

This method is used to duplicate or reorder substrings. The destination index must not overlap the source range.

Parameters:
start   the beginning index, inclusive; 0 <= start <= limit.
limit   the ending index, exclusive; start <= limit <= length().
dest   the destination index. The characters from start..limit-1 will be copied to dest. Implementations of this method may assume that dest <= start || dest >= limit.

Reimplemented from Replaceable.

int8_t UnicodeString::doCaseCompare ( UTextOffset start,
int32_t length,
const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength,
uint32_t options ) const [private]
 

int8_t UnicodeString::doCaseCompare ( UTextOffset start,
int32_t length,
const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength,
uint32_t options ) const [inline, private]
 

Definition at line 2723 of file unistr.h.

Referenced by caseCompare(), and caseCompareBetween().

UChar UnicodeString::doCharAt ( UTextOffset offset ) const [inline, private]
 

Definition at line 3101 of file unistr.h.

Referenced by charAt(), and operator[]().

void UnicodeString::doCodepageCreate ( const char * codepageData,
int32_t dataLength,
const char * codepage ) [private]
 

int8_t UnicodeString::doCompare ( UTextOffset start,
int32_t length,
const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength ) const [private]
 

int8_t UnicodeString::doCompare ( UTextOffset start,
int32_t length,
const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength ) const [inline, private]
 

Definition at line 2585 of file unistr.h.

Referenced by compare(), compareBetween(), endsWith(), operator<(), operator<=(), operator==(), operator>(), operator>=(), and startsWith().

int8_t UnicodeString::doCompareCodePointOrder ( UTextOffset start,
int32_t length,
const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength ) const [private]
 

int8_t UnicodeString::doCompareCodePointOrder ( UTextOffset start,
int32_t length,
const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength ) const [inline, private]
 

Definition at line 2648 of file unistr.h.

Referenced by compareCodePointOrder(), and compareCodePointOrderBetween().

void UnicodeString::doExtract ( UTextOffset start,
int32_t length,
UnicodeString & target ) const [inline, private]
 

Definition at line 3061 of file unistr.h.

void UnicodeString::doExtract ( UTextOffset start,
int32_t length,
UChar * dst,
UTextOffset dstStart ) const [private]
 

Referenced by extract(), and extractBetween().

int32_t UnicodeString::doHashCode ( void ) const [private]
 

Referenced by hashCode().

UTextOffset UnicodeString::doIndexOf ( UChar c,
UTextOffset start,
int32_t length ) const [private]
 

Referenced by indexOf().

UTextOffset UnicodeString::doLastIndexOf ( UChar c,
UTextOffset start,
int32_t length ) const [private]
 

Referenced by lastIndexOf().

UnicodeString& UnicodeString::doReplace ( UTextOffset start,
int32_t length,
const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength ) [private]
 

UnicodeString& UnicodeString::doReplace ( UTextOffset start,
int32_t length,
const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength ) [private]
 

Referenced by append(), insert(), operator+=(), operator=(), remove(), removeBetween(), replace(), replaceBetween(), and setTo().

UnicodeString& UnicodeString::doReverse ( UTextOffset start,
int32_t length ) [private]
 

Referenced by reverse().

UBool UnicodeString::empty ( void ) const [inline]
 

Determine if this string is empty.

Returns:
TRUE if this string contains 0 characters, FALSE otherwise.
Stable:

Definition at line 3151 of file unistr.h.

UBool UnicodeString::endsWith ( const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength ) const [inline]
 

Determine if this ends with the characters in srcChars in the range [srcStart, srcStart + srcLength).

Parameters:
srcChars   The characters to match.
srcStart   the offset into srcText to start matching
srcLength   the number of characters in srcChars to match
Returns:
TRUE if this ends with the characters in srcChars, FALSE otherwise
Stable:

Definition at line 2976 of file unistr.h.

UBool UnicodeString::endsWith ( const UChar * srcChars,
int32_t srcLength ) const [inline]
 

Determine if this ends with the characters in srcChars.

Parameters:
srcChars   The characters to match.
srcLength   the number of characters in srcChars
Returns:
TRUE if this ends with the characters in srcChars, FALSE otherwise
Stable:

Definition at line 2970 of file unistr.h.

UBool UnicodeString::endsWith ( const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength ) const [inline]
 

Determine if this ends with the characters in srcText in the range [srcStart, srcStart + srcLength).

Parameters:
srcText   The text to match.
srcStart   the offset into srcText to start matching
srcLength   the number of characters in srcText to match
Returns:
TRUE if this ends with the characters in text, FALSE otherwise
Stable:

Definition at line 2963 of file unistr.h.

UBool UnicodeString::endsWith ( const UnicodeString & text ) const [inline]
 

Determine if this ends with the characters in text.

Parameters:
text   The text to match.
Returns:
TRUE if this ends with the characters in text, FALSE otherwise
Stable:

Definition at line 2958 of file unistr.h.

int32_t UnicodeString::extract ( UTextOffset start,
int32_t startLength,
char * target,
uint32_t targetLength,
const char * codepage = 0 ) const
 

Copy the characters in the range [start, start + length) into an array of characters in a specified codepage.

Parameters:
start   offset of first character which will be copied
startLength   the number of characters to extract
target   the target buffer for extraction
targetLength   the length of the target buffer
codepage   the desired codepage for the characters. 0 has the special meaning of the default codepage If codepage is an empty string (""), then a simple conversion is performed on the codepage-invariant subset ("invariant characters") of the platform encoding. See utypes.h. If target is NULL, then the number of bytes required for target is returned.
Returns:
the number of characters written to target
Stable:

int32_t UnicodeString::extract ( UTextOffset start,
int32_t length,
char * dst,
const char * codepage = 0 ) const [inline]
 

Copy the characters in the range [start, start + length) into an array of characters in a specified codepage.

Parameters:
start   offset of first character which will be copied
startLength   the number of characters to extract
target   the target buffer for extraction
codepage   the desired codepage for the characters. 0 has the special meaning of the default codepage If codepage is an empty string (""), then a simple conversion is performed on the codepage-invariant subset ("invariant characters") of the platform encoding. See utypes.h. If target is NULL, then the number of bytes required for target is returned. It is assumed that the target is big enough to fit all of the characters.
Returns:
the number of characters written to target
Stable:

Definition at line 3080 of file unistr.h.

void UnicodeString::extract ( UTextOffset start,
int32_t length,
UnicodeString & target ) const [inline]
 

Copy the characters in the range [start, start + length) into the UnicodeString target.

Parameters:
start   offset of first character which will be copied
length   the number of characters to extract
target   UnicodeString into which to copy characters.
Returns:
A reference to target
Stable:

Definition at line 3074 of file unistr.h.

void UnicodeString::extract ( UTextOffset start,
int32_t length,
UChar * target,
UTextOffset targetStart = 0 ) const [inline]
 

Copy the characters in the range [start, start + length) into the array dst, beginning at dstStart.

If the string aliases to dst itself as an external buffer, then extract() will not copy the contents.

Parameters:
start   offset of first character which will be copied into the array
length   the number of characters to extract
dst   array in which to copy characters. The length of dst must be at least (dstStart + length).
dstStart   the offset in dst where the first character will be extracted
Stable:

Definition at line 3067 of file unistr.h.

void UnicodeString::extractBetween ( UTextOffset start,
UTextOffset limit,
UnicodeString & target ) const [inline]
 

Copy the characters in the range [start, limit) into the UnicodeString target.

Parameters:
start   offset of first character which will be copied
limit   offset immediately following the last character to be copied
target   UnicodeString into which to copy characters.
Returns:
A reference to target
Stable:

Definition at line 3095 of file unistr.h.

void UnicodeString::extractBetween ( UTextOffset start,
UTextOffset limit,
UChar * dst,
UTextOffset dstStart = 0 ) const [inline]
 

Copy the characters in the range [start, limit) into the array dst, beginning at dstStart.

Parameters:
start   offset of first character which will be copied into the array
limit   offset immediately following the last character to be copied
dst   array in which to copy characters. The length of dst must be at least (dstStart + (limit - start)).
dstStart   the offset in dst where the first character will be extracted
Stable:

Definition at line 3088 of file unistr.h.

UnicodeString & UnicodeString::findAndReplace ( UTextOffset start,
int32_t length,
const UnicodeString & oldText,
UTextOffset oldStart,
int32_t oldLength,
const UnicodeString & newText,
UTextOffset newStart,
int32_t newLength )
 

Replace all occurrences of characters in oldText in the range [oldStart, oldStart + oldLength) with the characters in newText in the range [newStart, newStart + newLength) in the range [start, start + length).

Parameters:
start   the start of the range in which replace will performed
length   the length of the range in which replace will be performed
oldText   the text containing the search text
oldStart   the start of the search range in oldText
oldLength   the length of the search range in oldText
newText   the text containing the replacement text
newStart   the start of the replacement range in newText
newLength   the length of the replacement range in newText
Returns:
a reference to this
Stable:

UnicodeString & UnicodeString::findAndReplace ( UTextOffset start,
int32_t length,
const UnicodeString & oldText,
const UnicodeString & newText ) [inline]
 

Replace all occurrences of characters in oldText with characters in newText in the range [start, start + length).

Parameters:
start   the start of the range in which replace will performed
length   the length of the range in which replace will be performed
oldText   the text containing the search text
newText   the text containing the replacement text
Returns:
a reference to this
Stable:

Definition at line 3050 of file unistr.h.

UnicodeString & UnicodeString::findAndReplace ( const UnicodeString & oldText,
const UnicodeString & newText ) [inline]
 

Replace all occurrences of characters in oldText with the characters in newText.

Parameters:
oldText   the text containing the search text
newText   the text containing the replacement text
Returns:
a reference to this
Stable:

Definition at line 3044 of file unistr.h.

Referenced by findAndReplace().

UnicodeString & UnicodeString::foldCase ( uint32_t options = U_FOLD_CASE_DEFAULT )
 

Case-fold the characters in this string.

Case-folding is locale-independent and not context-sensitive, but there is an option for whether to include or exclude mappings for dotted I and dotless i that are marked with 'I' in CaseFolding.txt. The result may be longer or shorter than the original.

Parameters:
options   Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I
Returns:
A reference to this.
Draft:

const UChar * UnicodeString::getArrayStart ( void ) const [inline, private]
 

Definition at line 3353 of file unistr.h.

const UChar * UnicodeString::getArrayStart ( void ) [inline, private]
 

Definition at line 3349 of file unistr.h.

Referenced by doCaseCompare(), doCompare(), doCompareCodePointOrder(), indexOf(), and lastIndexOf().

int32_t UnicodeString::getCapacity ( void ) const [inline, private]
 

Definition at line 3357 of file unistr.h.

UChar32 UnicodeString::getChar32At ( UTextOffset offset ) const [protected, virtual]
 

The change in Replaceable to use virtual getChar32At() allows UnicodeString::char32At() to be inline again (see jitterbug 709).

Reimplemented from Replaceable.

UChar UnicodeString::getCharAt ( UTextOffset offset ) const [protected, virtual]
 

The change in Replaceable to use virtual getCharAt() allows UnicodeString::charAt() to be inline again (see jitterbug 709).

Reimplemented from Replaceable.

UTextOffset UnicodeString::getCharLimit ( UTextOffset offset ) [inline]
 

Adjust a random-access offset so that it points behind a Unicode character.

The offset that is passed in points behind any code unit of a code point, while the returned offset will point behind the last code unit of the same code point. In UTF-16, if the input offset points behind the first surrogate (i.e., to the second surrogate) of a surrogate pair, then the returned offset will point behind the second surrogate (i.e., to the first surrogate).

Parameters:
offset   a valid offset after any code unit of a code point of the text
Returns:
offset of the first code unit after the same code point

Definition at line 3141 of file unistr.h.

UTextOffset UnicodeString::getCharStart ( UTextOffset offset ) [inline]
 

Adjust a random-access offset so that it points to the beginning of a Unicode character.

The offset that is passed in points to any code unit of a code point, while the returned offset will point to the first code unit of the same code point. In UTF-16, if the input offset points to a second surrogate of a surrogate pair, then the returned offset will point to the first surrogate.

Parameters:
offset   a valid offset into one code point of the text
Returns:
offset of the first code unit of the same code point

Definition at line 3131 of file unistr.h.

UConverter* UnicodeString::getDefaultConverter ( UErrorCode & status ) [static, private]
 

const UChar* UnicodeString::getUChars ( ) const
 

UBool U_CALLCONV UnicodeString::growBuffer ( void * context,
UChar ** buffer,
int32_t * pCapacity,
int32_t reqCapacity,
int32_t length ) [static, private]
 

void UnicodeString::handleReplaceBetween ( UTextOffset start,
UTextOffset limit,
const UnicodeString & text ) [virtual]
 

Replace a substring of this object with the given text.

Parameters:
start   the beginning index, inclusive; 0 <= start <= limit.
limit   the ending index, exclusive; start <= limit <= length().
text   the text to replace characters start to limit - 1
Stable:

Reimplemented from Replaceable.

int32_t UnicodeString::hashCode ( void ) const [inline]
 

Generate a hash code for this object.

Returns:
The hash code of this UnicodeString.
Stable:

Definition at line 3162 of file unistr.h.

UTextOffset UnicodeString::indexOf ( UChar32 c,
UTextOffset start,
int32_t length ) const [inline]
 

Locate in this the first occurrence of the code point c in the range [start, start + length), using bitwise comparison.

Parameters:
c   The code point to search for.
start   the offset into this at which to start matching
length   the number of characters in this to search
Returns:
The offset into this of c, or -1 if not found.
Draft:

Definition at line 2819 of file unistr.h.

UTextOffset UnicodeString::indexOf ( UChar c,
UTextOffset start,
int32_t length ) const [inline]
 

Locate in this the first occurrence of the code point c in the range [start, start + length), using bitwise comparison.

Parameters:
c   The code unit to search for.
start   the offset into this at which to start matching
length   the number of characters in this to search
Returns:
The offset into this of c, or -1 if not found.
Draft:

Definition at line 2819 of file unistr.h.

UTextOffset UnicodeString::indexOf ( UChar32 c,
UTextOffset start ) const [inline]
 

Locate in this the first occurrence of the code point c starting at offset start, using bitwise comparison.

Parameters:
c   The code point to search for.
start   The offset at which searching will start.
Returns:
The offset into this of c, or -1 if not found.
Draft:

Definition at line 2801 of file unistr.h.

UTextOffset UnicodeString::indexOf ( UChar c,
UTextOffset start ) const [inline]
 

Locate in this the first occurrence of the code point c starting at offset start, using bitwise comparison.

Parameters:
c   The code unit to search for.
start   The offset at which searching will start.
Returns:
The offset into this of c, or -1 if not found.
Draft:

Definition at line 2801 of file unistr.h.

UTextOffset UnicodeString::indexOf ( UChar32 c ) const [inline]
 

Locate in this the first occurrence of the code point c, using bitwise comparison.

Parameters:
c   The code point to search for.
Returns:
The offset into this of c, or -1 if not found.
Draft:

Definition at line 2785 of file unistr.h.

UTextOffset UnicodeString::indexOf ( UChar c ) const [inline]
 

Locate in this the first occurrence of the code point c, using bitwise comparison.

Parameters:
c   The code unit to search for.
Returns:
The offset into this of c, or -1 if not found.
Draft:

Definition at line 2785 of file unistr.h.

UTextOffset UnicodeString::indexOf ( const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength,
UTextOffset start,
int32_t length ) const
 

Locate in this the first occurrence in the range [start, start + length) of the characters in srcChars in the range [srcStart, srcStart + srcLength), using bitwise comparison.

Parameters:
srcChars   The text to search for.
srcStart   the offset into srcChars at which to start matching
srcLength   the number of characters in srcChars to match
start   the offset into this at which to start matching
length   the number of characters in this to search
Returns:
The offset into this of the start of text, or -1 if not found.
Stable:

UTextOffset UnicodeString::indexOf ( const UChar * srcChars,
int32_t srcLength,
UTextOffset start,
int32_t length ) const [inline]
 

Locate in this the first occurrence in the range [start, start + length) of the characters in srcChars, using bitwise comparison.

Parameters:
text   The text to search for.
srcLength   the number of characters in srcChars
start   The offset at which searching will start.
length   The number of characters to search
Returns:
The offset into this of the start of srcChars, or -1 if not found.
Stable:

Definition at line 2778 of file unistr.h.

UTextOffset UnicodeString::indexOf ( const UChar * srcChars,
int32_t srcLength,
UTextOffset start ) const [inline]
 

Locate in this the first occurrence of the characters in srcChars starting at offset start, using bitwise comparison.

Parameters:
srcChars   The text to search for.
srcLength   the number of characters in srcChars to match
start   the offset into this at which to start matching
Returns:
The offset into this of the start of text, or -1 if not found.
Stable:

Definition at line 2772 of file unistr.h.

UTextOffset UnicodeString::indexOf ( const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength,
UTextOffset start,
int32_t length ) const [inline]
 

Locate in this the first occurrence in the range [start, start + length) of the characters in srcText in the range [srcStart, srcStart + srcLength), using bitwise comparison.

Parameters:
text   The text to search for.
srcStart   the offset into srcText at which to start matching
srcLength   the number of characters in srcText to match
start   the offset into this at which to start matching
length   the number of characters in this to search
Returns:
The offset into this of the start of text, or -1 if not found.
Stable:

Definition at line 2756 of file unistr.h.

UTextOffset UnicodeString::indexOf ( const UnicodeString & text,
UTextOffset start,
int32_t length ) const [inline]
 

Locate in this the first occurrence in the range [start, start + length) of the characters in text, using bitwise comparison.

Parameters:
text   The text to search for.
start   The offset at which searching will start.
length   The number of characters to search
Returns:
The offset into this of the start of text, or -1 if not found.
Stable:

Definition at line 2750 of file unistr.h.

UTextOffset UnicodeString::indexOf ( const UnicodeString & text,
UTextOffset start ) const [inline]
 

Locate in this the first occurrence of the characters in text starting at offset start, using bitwise comparison.

Parameters:
text   The text to search for.
start   The offset at which searching will start.
Returns:
The offset into this of the start of text, or -1 if not found.
Stable:

Definition at line 2745 of file unistr.h.

UTextOffset UnicodeString::indexOf ( const UnicodeString & text ) const [inline]
 

Locate in this the first occurrence of the characters in text, using bitwise comparison.

Parameters:
text   The text to search for.
Returns:
The offset into this of the start of text, or -1 if not found.
Stable:

Definition at line 2741 of file unistr.h.

Referenced by indexOf().

UnicodeString & UnicodeString::insert ( UTextOffset start,
UChar32 srcChar ) [inline]
 

Insert the code point srcChar into the UnicodeString object at offset start.

Parameters:
start   the offset at which the insertion occurs
srcChar   the code point to insert
Returns:
a reference to this
Draft:

Definition at line 3274 of file unistr.h.

UnicodeString & UnicodeString::insert ( UTextOffset start,
UChar srcChar ) [inline]
 

Insert the code point srcChar into the UnicodeString object at offset start.

Parameters:
start   the offset at which the insertion occurs
srcChar   the code unit to insert
Returns:
a reference to this
Draft:

Definition at line 3274 of file unistr.h.

UnicodeString & UnicodeString::insert ( UTextOffset start,
const UChar * srcChars,
int32_t srcLength ) [inline]
 

Insert the characters in srcChars into the UnicodeString object at offset start.

srcChars is not modified.

Parameters:
start   the offset where the insertion begins
srcChars   the source for the new characters
srcLength   the number of Unicode characters in srcChars.
Returns:
a reference to this
Stable:

Definition at line 3268 of file unistr.h.

UnicodeString & UnicodeString::insert ( UTextOffset start,
const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength ) [inline]
 

Insert the characters in srcChars in the range [srcStart, srcStart + srcLength) into the UnicodeString object at offset start.

srcChars is not modified.

Parameters:
start   the offset at which the insertion begins
srcChars   the source for the new characters
srcStart   the offset into srcChars where new characters will be obtained
srcLength   the number of characters in srcChars in the insert string
Returns:
a reference to this
Stable:

Definition at line 3261 of file unistr.h.

UnicodeString & UnicodeString::insert ( UTextOffset start,
const UnicodeString & srcText ) [inline]
 

Insert the characters in srcText into the UnicodeString object at offset start.

srcText is not modified.

Parameters:
start   the offset where the insertion begins
srcText   the source for the new characters
Returns:
a reference to this
Stable:

Definition at line 3256 of file unistr.h.

UnicodeString & UnicodeString::insert ( UTextOffset start,
const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength ) [inline]
 

Insert the characters in srcText in the range [srcStart, srcStart + srcLength) into the UnicodeString object at offset start.

srcText is not modified.

Parameters:
start   the offset where the insertion begins
srcText   the source for the new characters
srcStart   the offset into srcText where new characters will be obtained
srcLength   the number of characters in srcText in the insert string
Returns:
a reference to this
Stable:

Definition at line 3249 of file unistr.h.

UBool UnicodeString::isBogus ( void ) const [inline]
 

Determine if this string is still valid.

Returns:
TRUE if the string is valid, FALSE otherwise
Draft:

Definition at line 3323 of file unistr.h.

Referenced by doCaseCompare(), doCompare(), doCompareCodePointOrder(), indexOf(), lastIndexOf(), and operator==().

UTextOffset UnicodeString::lastIndexOf ( UChar32 c,
UTextOffset start,
int32_t length ) const [inline]
 

Locate in this the last occurrence of the code point c in the range [start, start + length), using bitwise comparison.

Parameters:
c   The code point to search for.
start   the offset into this at which to start matching
length   the number of characters in this to search
Returns:
The offset into this of c, or -1 if not found.
Draft:

Definition at line 2917 of file unistr.h.

UTextOffset UnicodeString::lastIndexOf ( UChar c,
UTextOffset start,
int32_t length ) const [inline]
 

Locate in this the last occurrence of the code point c in the range [start, start + length), using bitwise comparison.

Parameters:
c   The code unit to search for.
start   the offset into this at which to start matching
length   the number of characters in this to search
Returns:
The offset into this of c, or -1 if not found.
Draft:

Definition at line 2917 of file unistr.h.

UTextOffset UnicodeString::lastIndexOf ( UChar32 c,
UTextOffset start ) const [inline]
 

Locate in this the last occurrence of the code point c starting at offset start, using bitwise comparison.

Parameters:
c   The code point to search for.
start   The offset at which searching will start.
Returns:
The offset into this of c, or -1 if not found.
Draft:

Definition at line 2899 of file unistr.h.

UTextOffset UnicodeString::lastIndexOf ( UChar c,
UTextOffset start ) const [inline]
 

Locate in this the last occurrence of the code point c starting at offset start, using bitwise comparison.

Parameters:
c   The code unit to search for.
start   The offset at which searching will start.
Returns:
The offset into this of c, or -1 if not found.
Draft:

Definition at line 2899 of file unistr.h.

UTextOffset UnicodeString::lastIndexOf ( UChar32 c ) const [inline]
 

Locate in this the last occurrence of the code point c, using bitwise comparison.

Parameters:
c   The code point to search for.
Returns:
The offset into this of c, or -1 if not found.
Draft:

Definition at line 2883 of file unistr.h.

UTextOffset UnicodeString::lastIndexOf ( UChar c ) const [inline]
 

Locate in this the last occurrence of the code point c, using bitwise comparison.

Parameters:
c   The code unit to search for.
Returns:
The offset into this of c, or -1 if not found.
Draft:

Definition at line 2883 of file unistr.h.

UTextOffset UnicodeString::lastIndexOf ( const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength,
UTextOffset start,
int32_t length ) const
 

Locate in this the last occurrence in the range [start, start + length) of the characters in srcChars in the range [srcStart, srcStart + srcLength), using bitwise comparison.

Parameters:
srcChars   The text to search for.
srcStart   the offset into srcChars at which to start matching
srcLength   the number of characters in srcChars to match
start   the offset into this at which to start matching
length   the number of characters in this to search
Returns:
The offset into this of the start of text, or -1 if not found.
Stable:

UTextOffset UnicodeString::lastIndexOf ( const UChar * srcChars,
int32_t srcLength,
UTextOffset start,
int32_t length ) const [inline]
 

Locate in this the last occurrence in the range [start, start + length) of the characters in srcChars, using bitwise comparison.

Parameters:
text   The text to search for.
srcLength   the number of characters in srcChars
start   The offset at which searching will start.
length   The number of characters to search
Returns:
The offset into this of the start of srcChars, or -1 if not found.
Stable:

Definition at line 2876 of file unistr.h.

UTextOffset UnicodeString::lastIndexOf ( const UChar * srcChars,
int32_t srcLength,
UTextOffset start ) const [inline]
 

Locate in this the last occurrence of the characters in srcChars starting at offset start, using bitwise comparison.

Parameters:
srcChars   The text to search for.
srcLength   the number of characters in srcChars to match
start   the offset into this at which to start matching
Returns:
The offset into this of the start of text, or -1 if not found.
Stable:

Definition at line 2870 of file unistr.h.

UTextOffset UnicodeString::lastIndexOf ( const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength,
UTextOffset start,
int32_t length ) const [inline]
 

Locate in this the last occurrence in the range [start, start + length) of the characters in srcText in the range [srcStart, srcStart + srcLength), using bitwise comparison.

Parameters:
text   The text to search for.
srcStart   the offset into srcText at which to start matching
srcLength   the number of characters in srcText to match
start   the offset into this at which to start matching
length   the number of characters in this to search
Returns:
The offset into this of the start of text, or -1 if not found.
Stable:

Definition at line 2854 of file unistr.h.

UTextOffset UnicodeString::lastIndexOf ( const UnicodeString & text,
UTextOffset start,
int32_t length ) const [inline]
 

Locate in this the last occurrence in the range [start, start + length) of the characters in text, using bitwise comparison.

Parameters:
text   The text to search for.
start   The offset at which searching will start.
length   The number of characters to search
Returns:
The offset into this of the start of text, or -1 if not found.
Stable:

Definition at line 2848 of file unistr.h.

UTextOffset UnicodeString::lastIndexOf ( const UnicodeString & text,
UTextOffset start ) const [inline]
 

Locate in this the last occurrence of the characters in text starting at offset start, using bitwise comparison.

Parameters:
text   The text to search for.
start   The offset at which searching will start.
Returns:
The offset into this of the start of text, or -1 if not found.
Stable:

Definition at line 2843 of file unistr.h.

UTextOffset UnicodeString::lastIndexOf ( const UnicodeString & text ) const [inline]
 

Locate in this the last occurrence of the characters in text, using bitwise comparison.

Parameters:
text   The text to search for.
Returns:
The offset into this of the start of text, or -1 if not found.
Stable:

Definition at line 2839 of file unistr.h.

Referenced by lastIndexOf().

int32_t UnicodeString::length ( void ) const [inline]
 

Return the length of the UnicodeString object.

The length is the number of characters in the text.

Returns:
the length of the UnicodeString object
Stable:

Reimplemented from Replaceable.

Definition at line 3158 of file unistr.h.

Referenced by DecimalFormatSymbols::compareCurrencySymbol(), DecimalFormatSymbols::compareInfinity(), DecimalFormatSymbols::compareInternationalCurrencySymbol(), and DecimalFormatSymbols::compareNaN().

int32_t UnicodeString::numDisplayCells ( UTextOffset start = 0,
int32_t length = INT32_MAX,
UBool asian = TRUE ) const
 

Returns the number of display cells occupied by the range [start, length).

This function is designed for Asian text and properly takes into account halfwidth and fullwidth variants of various CJK characters and the combining behavior of the Hangul Jamo characters (with some limitations; see documentation for Unicode::getCellWidth()).
In order to avoid dealing with fractions, this function can either be construed to return twice the actual number of display cells or to treat a "cell" as the width of a halfwidth character rather than the width of a fullwidth character.

Parameters:
start   the start of the range
length   the number of characters to measure
asian   The asian parameter controls whether characters considered NEUTRAL by the Unicode class are treated as halfwidth or fullwidth here. If you set asian to FALSE, neutrals are treated as halfwidth, and this function returns a close approximation of how many Latin display cells the text will take up in a monospaced font.
Returns:
the number of display cells occupied by the specified substring.
Stable:

UBool UnicodeString::operator!= ( const UnicodeString & text ) const [inline]
 

Inequality operator.

Performs only bitwise comparison.

Parameters:
text   The UnicodeString to compare to this one.
Returns:
FALSE if text contains the same characters as this one, TRUE otherwise.
Stable:

Definition at line 2519 of file unistr.h.

UnicodeString & UnicodeString::operator+= ( const UnicodeString & srcText ) [inline]
 

Append operator.

Append the characters in srcText to the UnicodeString object at offset start. srcText is not modified.

Parameters:
srcText   the source for the new characters
Returns:
a reference to this
Stable:

Definition at line 3212 of file unistr.h.

UnicodeString & UnicodeString::operator+= ( UChar32 ch ) [inline]
 

Append operator.

Append the code point ch to the UnicodeString object.

Parameters:
ch   the code point to be appended
Returns:
a reference to this
Draft:

Definition at line 3200 of file unistr.h.

UnicodeString & UnicodeString::operator+= ( UChar ch ) [inline]
 

Append operator.

Append the code unit ch to the UnicodeString object.

Parameters:
ch   the code unit to be appended
Returns:
a reference to this
Draft:

Definition at line 3200 of file unistr.h.

UBool UnicodeString::operator< ( const UnicodeString & text ) const [inline]
 

Less than operator.

Performs only bitwise comparison.

Parameters:
text   The UnicodeString to compare to this one.
Returns:
TRUE if the characters in text are bitwise less than the characters in this, FALSE otherwise
Stable:

Definition at line 2527 of file unistr.h.

UBool UnicodeString::operator<= ( const UnicodeString & text ) const [inline]
 

Less than or equal operator.

Performs only bitwise comparison.

Parameters:
text   The UnicodeString to compare to this one.
Returns:
TRUE if the characters in text are bitwise less than or equal to the characters in this, FALSE otherwise
Stable:

Definition at line 2535 of file unistr.h.

UnicodeString & UnicodeString::operator= ( UChar32 ch ) [inline]
 

Assignment operator.

Replace the characters in this UnicodeString with the code point ch.

Parameters:
ch   the code point to replace
Returns:
a reference to this
Draft:

Definition at line 3169 of file unistr.h.

UnicodeString & UnicodeString::operator= ( UChar ch ) [inline]
 

Assignment operator.

Replace the characters in this UnicodeString with the code unit ch.

Parameters:
ch   the code unit to replace
Returns:
a reference to this
Draft:

Definition at line 3169 of file unistr.h.

UnicodeString & UnicodeString::operator= ( const UnicodeString & srcText )
 

Assignment operator.

Replace the characters in this UnicodeString with the characters from srcText.

Parameters:
srcText   The text containing the characters to replace
Returns:
a reference to this
Stable:

UBool UnicodeString::operator== ( const UnicodeString & text ) const [inline]
 

Equality operator.

Performs only bitwise comparison.

Parameters:
text   The UnicodeString to compare to this one.
Returns:
TRUE if text contains the same characters as this one, FALSE otherwise.
Stable:

Definition at line 2506 of file unistr.h.

Referenced by operator!=().

UBool UnicodeString::operator> ( const UnicodeString & text ) const [inline]
 

Greater than operator.

Performs only bitwise comparison.

Parameters:
text   The UnicodeString to compare to this one.
Returns:
TRUE if the characters in text are bitwise greater than the characters in this, FALSE otherwise
Stable:

Definition at line 2523 of file unistr.h.

UBool UnicodeString::operator>= ( const UnicodeString & text ) const [inline]
 

Greater than or equal operator.

Performs only bitwise comparison.

Parameters:
text   The UnicodeString to compare to this one.
Returns:
TRUE if the characters in text are bitwise greater than or equal to the characters in this, FALSE otherwise
Stable:

Definition at line 2531 of file unistr.h.

UCharReference UnicodeString::operator[] ( UTextOffset pos )
 

UChar UnicodeString::operator[] ( UTextOffset offset ) const [inline]
 

Return the code unit at offset offset.

Parameters:
offset   a valid offset into the text
Returns:
the code unit at offset offset
Draft:

Definition at line 3115 of file unistr.h.

UBool UnicodeString::padLeading ( int32_t targetLength,
UChar padChar = 0x0020 )
 

Pad the start of this UnicodeString with the character padChar.

If the length of this UnicodeString is less than targetLength, length() - targetLength copies of padChar will be added to the beginning of this UnicodeString.

Parameters:
targetLength   the desired length of the string
padChar   the character to use for padding. Defaults to space (U+0020)
Returns:
TRUE if the text was padded, FALSE otherwise.
Draft:

UBool UnicodeString::padTrailing ( int32_t targetLength,
UChar padChar = 0x0020 )
 

Pad the end of this UnicodeString with the character padChar.

If the length of this UnicodeString is less than targetLength, length() - targetLength copies of padChar will be added to the end of this UnicodeString.

Parameters:
targetLength   the desired length of the string
padChar   the character to use for padding. Defaults to space (U+0020)
Returns:
TRUE if the text was padded, FALSE otherwise.
Draft:

void UnicodeString::pinIndices ( UTextOffset & start,
int32_t & length ) const [inline, private]
 

Definition at line 3332 of file unistr.h.

Referenced by doCaseCompare(), doCompare(), doCompareCodePointOrder(), indexOf(), and lastIndexOf().

int32_t UnicodeString::refCount ( void ) const [inline, private]
 

Definition at line 3376 of file unistr.h.

void UnicodeString::releaseArray ( ) [inline, private]
 

Definition at line 3361 of file unistr.h.

void UnicodeString::releaseDefaultConverter ( UConverter * converter ) [static, private]
 

UnicodeString & UnicodeString::remove ( UTextOffset start,
int32_t length = (int32_t)INT32_MAX ) [inline]
 

Remove the characters in the range [start, start + length) from the UnicodeString object.

Parameters:
start   the offset of the first character to remove
length   the number of characters to remove
Returns:
a reference to this
Stable:

Definition at line 3285 of file unistr.h.

UnicodeString & UnicodeString::remove ( void ) [inline]
 

Remove all characters from the UnicodeString object.

Returns:
a reference to this
Stable:

Definition at line 3290 of file unistr.h.

UnicodeString & UnicodeString::removeBetween ( UTextOffset start,
UTextOffset limit = (int32_t)INT32_MAX ) [inline]
 

Remove the characters in the range [start, limit) from the UnicodeString object.

Parameters:
start   the offset of the first character to remove
limit   the offset immediately following the range to remove
Returns:
a reference to this
Stable:

Definition at line 3294 of file unistr.h.

int32_t UnicodeString::removeRef ( void ) [inline, private]
 

Definition at line 3372 of file unistr.h.

Referenced by releaseArray().

UnicodeString & UnicodeString::replace ( UTextOffset start,
int32_t length,
UChar32 srcChar ) [inline]
 

Replace the characters in the range [start, start + length) with the code point srcChar.

Parameters:
start   the offset at which the replace operation begins
length   the number of characters to replace. The character at start + length is not modified.
srcChar   the new code point
Returns:
a reference to this
Draft:

Definition at line 3014 of file unistr.h.

UnicodeString & UnicodeString::replace ( UTextOffset start,
int32_t length,
UChar srcChar ) [inline]
 

Replace the characters in the range [start, start + length) with the code point srcChar.

Parameters:
start   the offset at which the replace operation begins
length   the number of characters to replace. The character at start + length is not modified.
srcChar   the new code unit
Returns:
a reference to this
Draft:

Definition at line 3014 of file unistr.h.

UnicodeString & UnicodeString::replace ( UTextOffset start,
int32_t length,
const UChar * srcChars,
int32_t srcLength ) [inline]
 

Replace the characters in the range [start, start + length) with the characters in srcChars.

srcChars is not modified.

Parameters:
start   the offset at which the replace operation begins
length   number of characters to replace. The character at start + length is not modified.
srcChars   the source for the new characters
srcLength   the number of Unicode characters in srcChars
Returns:
a reference to this
Stable:

Definition at line 2999 of file unistr.h.

UnicodeString & UnicodeString::replace ( UTextOffset start,
int32_t length,
const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength ) [inline]
 

Replace the characters in the range [start, start + length) with the characters in srcChars in the range [srcStart, srcStart + srcLength).

srcChars is not modified.

Parameters:
start   the offset at which the replace operation begins
length   the number of characters to replace. The character at start + length is not modified.
srcChars   the source for the new characters
srcStart   the offset into srcChars where new characters will be obtained
srcLength   the number of characters in srcChars in the replace string
Returns:
a reference to this
Stable:

Definition at line 3006 of file unistr.h.

UnicodeString & UnicodeString::replace ( UTextOffset start,
int32_t length,
const UnicodeString & srcText ) [inline]
 

Replace the characters in the range [start, start + length) with the characters in srcText.

srcText is not modified.

Parameters:
start   the offset at which the replace operation begins
length   the number of characters to replace. The character at start + length is not modified.
srcText   the source for the new characters
Returns:
a reference to this
Stable:

Definition at line 2985 of file unistr.h.

UnicodeString & UnicodeString::replace ( UTextOffset start,
int32_t length,
const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength ) [inline]
 

Replace the characters in the range [start, start + length) with the characters in srcText in the range [srcStart, srcStart + srcLength).

srcText is not modified.

Parameters:
start   the offset at which the replace operation begins
length   the number of characters to replace. The character at start + length is not modified.
srcText   the source for the new characters
srcStart   the offset into srcText where new characters will be obtained
srcLength   the number of characters in srcText in the replace string
Returns:
a reference to this
Stable:

Definition at line 2991 of file unistr.h.

Referenced by doExtract().

UnicodeString & UnicodeString::replaceBetween ( UTextOffset start,
UTextOffset limit,
const UnicodeString & srcText,
UTextOffset srcStart,
UTextOffset srcLimit ) [inline]
 

Replace the characters in the range [start, limit) with the characters in srcText in the range [srcStart, srcLimit).

srcText is not modified.

Parameters:
start   the offset at which the replace operation begins
limit   the offset immediately following the replace range
srcText   the source for the new characters
srcStart   the offset into srcChars where new characters will be obtained
srcLimit   the offset immediately following the range to copy in srcText
Returns:
a reference to this
Stable:

Definition at line 3036 of file unistr.h.

UnicodeString & UnicodeString::replaceBetween ( UTextOffset start,
UTextOffset limit,
const UnicodeString & srcText ) [inline]
 

Replace the characters in the range [start, limit) with the characters in srcText.

srcText is not modified.

Parameters:
start   the offset at which the replace operation begins
limit   the offset immediately following the replace range
srcText   the source for the new characters
Returns:
a reference to this
Stable:

Definition at line 3030 of file unistr.h.

UnicodeString & UnicodeString::reverse ( UTextOffset start,
int32_t length ) [inline]
 

Reverse the range [start, start + length) in this UnicodeString.

Parameters:
start   the start of the range to reverse
length   the number of characters to to reverse
Returns:
a reference to this
Stable:

Definition at line 3314 of file unistr.h.

UnicodeString & UnicodeString::reverse ( void ) [inline]
 

Reverse this UnicodeString in place.

Returns:
a reference to this
Stable:

Definition at line 3310 of file unistr.h.

UnicodeString & UnicodeString::setCharAt ( UTextOffset offset,
UChar ch )
 

Set the character at the specified offset to the specified character.

Parameters:
offset   A valid offset into the text of the character to set
ch   The new character
Returns:
A reference to this
Draft:

Referenced by UCharReference::operator=().

int32_t UnicodeString::setRefCount ( int32_t count ) [inline, private]
 

Definition at line 3380 of file unistr.h.

UnicodeString & UnicodeString::setTo ( UChar * buffer,
int32_t buffLength,
int32_t buffCapacity )
 

Aliasing setTo() function, analogous to the writeable-aliasing UChar* constructor.

The text will be used for the UnicodeString object, but it will not be released when the UnicodeString is destroyed. This has write-through semantics: For as long as the capacity of the buffer is sufficient, write operations will directly affect the buffer. When more capacity is necessary, then a new buffer will be allocated and the contents copied as with regularly constructed strings. In an assignment to another UnicodeString, the buffer will be copied. The extract(UChar *dst) function detects whether the dst pointer is the same as the string buffer itself and will in this case not copy the contents.

Parameters:
buffer   The characters to alias for the UnicodeString.
buffLength   The number of Unicode characters in buffer to alias.
buffCapacity   The size of buffer in UChars.
Draft:

UnicodeString & UnicodeString::setTo ( UBool isTerminated,
const UChar * text,
int32_t textLength )
 

Aliasing setTo() function, analogous to the readonly-aliasing UChar* constructor.

The text will be used for the UnicodeString object, but it will not be released when the UnicodeString is destroyed. This has copy-on-write semantics: When the string is modified, then the buffer is first copied into newly allocated memory. The aliased buffer is never modified. In an assignment to another UnicodeString, the text will be aliased again, so that both strings then alias the same readonly-text.

Parameters:
isTerminated   specifies if text is NUL-terminated. This must be true if textLength==-1.
text   The characters to alias for the UnicodeString.
textLength   The number of Unicode characters in text to alias. If -1, then this constructor will determine the length by calling u_strlen().
Draft:

UnicodeString & UnicodeString::setTo ( UChar32 srcChar ) [inline]
 

Set the characters in the UnicodeString object to the code point srcChar.

Parameters:
srcChar   the code point which becomes the UnicodeString's character content
Returns:
a reference to this
Draft:

Definition at line 3192 of file unistr.h.

UnicodeString & UnicodeString::setTo ( UChar srcChar ) [inline]
 

Set the characters in the UnicodeString object to the code point srcChar.

Parameters:
srcChar   the code unit which becomes the UnicodeString's character content
Returns:
a reference to this
Draft:

Definition at line 3192 of file unistr.h.

UnicodeString & UnicodeString::setTo ( const UChar * srcChars,
int32_t srcLength ) [inline]
 

Set the characters in the UnicodeString object to the characters in srcChars.

srcChars is not modified.

Parameters:
srcChars   the source for the new characters
srcLength   the number of Unicode characters in srcChars.
Returns:
a reference to this
Stable:

Definition at line 3187 of file unistr.h.

UnicodeString & UnicodeString::setTo ( const UnicodeString & srcText ) [inline]
 

Set the text in the UnicodeString object to the characters in srcText.

srcText is not modified.

Parameters:
srcText   the source for the new characters
Returns:
a reference to this
Stable:

Definition at line 3183 of file unistr.h.

UnicodeString & UnicodeString::setTo ( const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength ) [inline]
 

Set the text in the UnicodeString object to the characters in srcText in the range [srcStart, srcStart + srcLength).

srcText is not modified.

Parameters:
srcText   the source for the new characters
srcStart   the offset into srcText where new characters will be obtained
srcLength   the number of characters in srcText in the replace string.
Returns:
a reference to this
Stable:

Definition at line 3177 of file unistr.h.

void UnicodeString::setToBogus ( void ) [private]
 

UBool UnicodeString::startsWith ( const UChar * srcChars,
UTextOffset srcStart,
int32_t srcLength ) const [inline]
 

Determine if this ends with the characters in srcChars in the range [srcStart, srcStart + srcLength).

Parameters:
srcChars   The characters to match.
srcStart   the offset into srcText to start matching
srcLength   the number of characters in srcChars to match
Returns:
TRUE if this ends with the characters in srcChars, FALSE otherwise
Stable:

Definition at line 2952 of file unistr.h.

UBool UnicodeString::startsWith ( const UChar * srcChars,
int32_t srcLength ) const [inline]
 

Determine if this starts with the characters in srcChars.

Parameters:
srcChars   The characters to match.
srcLength   the number of characters in srcChars
Returns:
TRUE if this starts with the characters in srcChars, FALSE otherwise
Stable:

Definition at line 2947 of file unistr.h.

UBool UnicodeString::startsWith ( const UnicodeString & srcText,
UTextOffset srcStart,
int32_t srcLength ) const [inline]
 

Determine if this starts with the characters in srcText in the range [srcStart, srcStart + srcLength).

Parameters:
srcText   The text to match.
srcStart   the offset into srcText to start matching
srcLength   the number of characters in srcText to match
Returns:
TRUE if this starts with the characters in text, FALSE otherwise
Stable:

Definition at line 2941 of file unistr.h.

UBool UnicodeString::startsWith ( const UnicodeString & text ) const [inline]
 

Determine if this starts with the characters in text.

Parameters:
text   The text to match.
Returns:
TRUE if this starts with the characters in text, FALSE otherwise
Stable:

Definition at line 2937 of file unistr.h.

UnicodeString & UnicodeString::toLower ( const Locale & locale )
 

Convert the characters in this to lower case following the conventions of a specific locale.

Parameters:
locale   The locale containing the conventions to use.
Returns:
A reference to this.
Stable:

UnicodeString & UnicodeString::toLower ( void )
 

Convert the characters in this to lower case following the conventions of the default locale.

Returns:
A reference to this.
Stable:

UnicodeString & UnicodeString::toUpper ( const Locale & locale )
 

Convert the characters in this to UPPER CASE following the conventions of a specific locale.

Parameters:
locale   The locale containing the conventions to use.
Returns:
A reference to this.
Stable:

UnicodeString & UnicodeString::toUpper ( void )
 

Convert the characters in this to UPPER CASE following the conventions of the default locale.

Returns:
A reference to this.
Stable:

UnicodeString & UnicodeString::trim ( void )
 

Trims leading and trailing whitespace from this UnicodeString.

Returns:
a reference to this
Stable:

UBool UnicodeString::truncate ( int32_t targetLength ) [inline]
 

Truncate this UnicodeString to the targetLength.

Parameters:
targetLength   the desired length of this UnicodeString.
Returns:
TRUE if the text was truncated, FALSE otherwise
Stable:

Definition at line 3299 of file unistr.h.

UnicodeString UnicodeString::unescape ( ) const
 

Unescape a string of characters and return a string containing the result.

The following escape sequences are recognized:

\uhhhh 4 hex digits; h in [0-9A-Fa-f] \Uhhhhhhhh 8 hex digits \xhh 1-2 hex digits \ooo 1-3 octal digits; o in [0-7]

as well as the standard ANSI C escapes:

=> U+0007, => U+0008, \t => U+0009,
=> U+000A, \v => U+000B, \f => U+000C, \r => U+000D, \" => U+0022, \' => U+0027, \? => U+003F, \ => U+005C

Anything else following a backslash is generically escaped. For example, "[a\-z]" returns "[a-z]".

If an escape sequence is ill-formed, this method returns an empty string. An example of an ill-formed sequence is "\u" followed by fewer than 4 hex digits.

This function is similar to u_unescape() but not identical to it. The latter takes a source char*, so it does escape recognition and also invariant conversion.

Returns:
a string with backslash escapes interpreted, or an empty string on error.
See also:
UnicodeString::unescapeAt() , u_unescape() , u_unescapeAt()

UChar32 UnicodeString::unescapeAt ( int32_t & offset ) const
 

Unescape a single escape sequence and return the represented character.

See unescape() for a listing of the recognized escape sequences. The character at offset-1 is assumed (without checking) to be a backslash. If the escape sequence is ill-formed, or the offset is out of range, (UChar32)0xFFFFFFFF is returned.

Parameters:
offset   an input output parameter. On input, it is the offset into this string where the escape sequence is located, after the initial backslash. On output, it is advanced after the last character parsed. On error, it is not advanced at all.
Returns:
the character represented by the escape sequence at offset, or (UChar32)0xFFFFFFFF on error.
See also:
UnicodeString::unescape() , u_unescape() , u_unescapeAt()


Friends And Related Function Documentation

class StringCharacterIterator [friend]
 

Definition at line 2427 of file unistr.h.

class UnicodeConverter [friend]
 

Definition at line 2419 of file unistr.h.

class UnicodeStringStreamer [friend]
 

Definition at line 2418 of file unistr.h.


Member Data Documentation

UChar * UnicodeString::fArray [private]
 

Definition at line 2444 of file unistr.h.

int32_t UnicodeString::fCapacity [private]
 

Definition at line 2443 of file unistr.h.

uint16_t UnicodeString::fFlags [private]
 

Definition at line 2445 of file unistr.h.

UChar UnicodeString::fStackBuffer[US_STACKBUF_SIZE] [private]
 

Definition at line 2449 of file unistr.h.

UConverter * UnicodeString::fgDefaultConverter [static, private]
 

Definition at line 2416 of file unistr.h.


The documentation for this class was generated from the following file:
Generated at Tue Jun 12 14:04:54 2001 for ICU 1.8.1 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000