version 1.20, 2001/04/27 20:44:38
|
version 1.26, 2001/05/07 13:51:05
|
|
|
*/ | */ |
String& operator=(const String& x) { _rep = x._rep; return *this; } | String& operator=(const String& x) { _rep = x._rep; return *this; } |
| |
/// Assign this string with x. |
/// Assign this string with Char16 x. |
String& operator=(const Char16* x) { assign(x); return *this; } | String& operator=(const Char16* x) { assign(x); return *this; } |
| |
/// Assign this string with x. |
/** Assign this string with String x |
|
@param x String to assign |
|
@return Returns the String |
|
*/ |
String& assign(const String& x) { _rep = x._rep; return *this; } | String& assign(const String& x) { _rep = x._rep; return *this; } |
| |
/// Assign this string with x. | /// Assign this string with x. |
|
|
/// Assign this string with first n characters of the plain old C-String x. | /// Assign this string with first n characters of the plain old C-String x. |
String& assign(const char* x, Uint32 n); | String& assign(const char* x, Uint32 n); |
| |
/** Clear this string. After calling clear(), getLength() will return 0. |
/** clear - Clear this string. After calling clear(), size() will return 0. |
<pre> | <pre> |
String test = "abc"; | String test = "abc"; |
test.clear(); // String test is now NULL (length == 0) | test.clear(); // String test is now NULL (length == 0) |
|
|
*/ | */ |
void clear() { _rep.clear(); _rep.append('\0'); } | void clear() { _rep.clear(); _rep.append('\0'); } |
| |
/** Reserves memory for capacity characters. Notice that this does not |
/** reserve - Reserves memory for capacity characters. Notice that this does |
change the size of the string (getSize() returns what it did before). |
not |
|
change the size of the string (size() returns what it did before). |
If the capacity of the string is already greater or equal to the | If the capacity of the string is already greater or equal to the |
capacity argument, this method has no effect. After calling reserve(), | capacity argument, this method has no effect. After calling reserve(), |
getCapicty() returns a value which is greater or equal to the | getCapicty() returns a value which is greater or equal to the |
|
|
@return Length of the string in characters. | @return Length of the string in characters. |
<pre> | <pre> |
String s = "abcd"; | String s = "abcd"; |
assert(s.getLength() == 4); |
assert(s.size() == 4); |
</pre> | </pre> |
*/ | */ |
Uint32 getLength() const { return _rep.getSize() - 1; } |
Uint32 size() const { return _rep.size() - 1; } |
| |
/** Returns a pointer to the first character in the null-terminated string | /** Returns a pointer to the first character in the null-terminated string |
string. | string. |
@param |
|
@return Pointer to the first character of the String object | @return Pointer to the first character of the String object |
<pre> | <pre> |
String t1 = "abc"; | String t1 = "abc"; |
|
|
*/ | */ |
const Char16* getData() const { return _rep.getData(); } | const Char16* getData() const { return _rep.getData(); } |
| |
/** Allocates an 8 bit representation of this string. The user is |
/** AallocateCString - llocates an 8 bit representation of this string. The |
|
user is |
responsible for freeing the result. If any characters are truncated, | responsible for freeing the result. If any characters are truncated, |
a TruncatedCharacter exception is thrown. This exception may | a TruncatedCharacter exception is thrown. This exception may |
be suppressed by passing true as the noThrow argument. Extra | be suppressed by passing true as the noThrow argument. Extra |
characters may be allocated at the end of the new string by | characters may be allocated at the end of the new string by |
passing a non-zero value to the extraBytes argument. | passing a non-zero value to the extraBytes argument. |
@param extraBytes - Defines the number of extra characters to be |
@param extraBytes Defines the number of extra characters to be |
allocated at the end of the new string. Default is zero. | allocated at the end of the new string. Default is zero. |
@param noThrow - If true, no exception will be thrown if characters |
@param noThrow If true, no exception will be thrown if characters |
are truncated | are truncated |
@return pointer to the new representation of the string | @return pointer to the new representation of the string |
@exception Throws TruncatedCharacter exception if any characters are | @exception Throws TruncatedCharacter exception if any characters are |
|
|
*/ | */ |
char* allocateCString(Uint32 extraBytes = 0, Boolean noThrow = false) const; | char* allocateCString(Uint32 extraBytes = 0, Boolean noThrow = false) const; |
| |
/** Append the given string to a C-string. If the length is not Uint32(-1), |
/** appendToCString - Append the given string to a C-string. If the length |
|
is not Uint32(-1), |
then the lesser of the the length argument and the length of this | then the lesser of the the length argument and the length of this |
string is truncated. Otherwise, the entire string is trunctated. The | string is truncated. Otherwise, the entire string is trunctated. The |
TruncatedCharacter exception is thrown if any characters are truncated. | TruncatedCharacter exception is thrown if any characters are truncated. |
|
|
const char STR0[] = "one two three four"; | const char STR0[] = "one two three four"; |
String s = STR0; | String s = STR0; |
const char STR1[] = "zero "; | const char STR1[] = "zero "; |
char* tmp = new char[strlen(STR1) + s.getLength() + 1]; |
char* tmp = new char[strlen(STR1) + s.size() + 1]; |
strcpy(tmp, STR1); | strcpy(tmp, STR1); |
s.appendToCString(tmp, 7); | s.appendToCString(tmp, 7); |
assert(strcmp(tmp, "zero one two") == 0); | assert(strcmp(tmp, "zero one two") == 0); |
|
|
*/ | */ |
String& append(const Char16& c) | String& append(const Char16& c) |
{ | { |
_rep.insert(_rep.getSize() - 1, c); |
_rep.insert(_rep.size() - 1, c); |
return *this; | return *this; |
} | } |
| |
|
|
/// Append the characters of str to this String object. | /// Append the characters of str to this String object. |
String& append(const String& str) | String& append(const String& str) |
{ | { |
return append(str.getData(), str.getLength()); |
return append(str.getData(), str.size()); |
} | } |
| |
/** Overload operator += appends the parameter String to this String. | /** Overload operator += appends the parameter String to this String. |
@parm String to append. |
@param String to append. |
@return This String | @return This String |
<pre> | <pre> |
String test = "abc"; | String test = "abc"; |
|
|
} | } |
| |
/** Append the character given by c to this String object. | /** Append the character given by c to this String object. |
@param c - Single character |
@param c Single character to be appended |
|
@return String with appended character |
*/ | */ |
String& operator+=(Char16 c) | String& operator+=(Char16 c) |
{ | { |
|
|
| |
/** Remove size characters from the string starting at the given | /** Remove size characters from the string starting at the given |
position. If size is -1, then all characters after pos are removed. | position. If size is -1, then all characters after pos are removed. |
@param pos - Position in string to start remove |
@param pos Position in string to start remove |
@param size - Number of characters to remove. Default is -1 which |
@param size Number of characters to remove. Default is -1 which |
causes all characters after pos to be removed | causes all characters after pos to be removed |
<pre> | <pre> |
String s; | String s; |
s = "abc"; | s = "abc"; |
s.remove(0, 1); | s.remove(0, 1); |
assert(String::equal(s, "bc")); | assert(String::equal(s, "bc")); |
assert(s.getLength() == 2); |
assert(s.size() == 2); |
s.remove(0); | s.remove(0); |
assert(String::equal(s, "")); | assert(String::equal(s, "")); |
assert(s.getLength() == 0); |
assert(s.size() == 0); |
</pre> | </pre> |
@exception throws "OutOfBounds" exception if size is greater than | @exception throws "OutOfBounds" exception if size is greater than |
length of String plus starting position for remove. | length of String plus starting position for remove. |
|
|
| |
/** Find the position of the first occurence of the character c. | /** Find the position of the first occurence of the character c. |
If the character is not found, -1 is returned. | If the character is not found, -1 is returned. |
@param c - Char to be found in the String |
@param c Char to be found in the String |
@return Position of the character in the string or -1 if not found. | @return Position of the character in the string or -1 if not found. |
*/ | */ |
Uint32 find(Char16 c) const; | Uint32 find(Char16 c) const; |
|
|
/** Find the position of the first occurence of the string object. | /** Find the position of the first occurence of the string object. |
This function finds one string inside another | This function finds one string inside another |
If the matching substring is not found, -1 is returned. | If the matching substring is not found, -1 is returned. |
@param s - String object to be found in the String |
@param s String object to be found in the String |
@return Position of the substring in the String or -1 if not | @return Position of the substring in the String or -1 if not |
found. | found. |
*/ | */ |
Uint32 find(const String& s) const; | Uint32 find(const String& s) const; |
| |
/** Find substring | /** Find substring |
@ param - 16 bit character pointer |
@ param 16 bit character pointer |
@seealso find | @seealso find |
|
@return Position of the substring in the String or -1 if not |
|
found. |
*/ | */ |
Uint32 find(const Char16* s) const; | Uint32 find(const Char16* s) const; |
| |
/** find substring | /** find substring |
@param char* to substring |
@param s char* to substring |
|
@return Position of the substring in the String or -1 if not |
|
found. |
*/ | */ |
Uint32 find(const char* s) const; | Uint32 find(const char* s) const; |
| |
/** Same as find() but start looking in reverse (last character first). |
/** reverseFind - Same as find() but start looking in reverse (last |
|
character first). |
|
@param c Char16 character to find in String. |
@Seealso find | @Seealso find |
@return Position of the character in the string or -1 if not found. | @return Position of the character in the string or -1 if not found. |
| |
|
|
*/ | */ |
void toLower(); | void toLower(); |
| |
|
/** Translate any occurences of fromChar to toChar. |
|
*/ |
|
void translate(Char16 fromChar, Char16 toChar); |
|
|
/** Compare the first n characters of the two strings. | /** Compare the first n characters of the two strings. |
@param s1 - First null-terminated string for the comparison |
@param s1 First null-terminated string for the comparison |
@param s2 - Second null-terminated string for the comparison |
@param s2 Second null-terminated string for the comparison |
@param n - Number of characters to compare |
@param n Number of characters to compare |
@return Return -1 if s1 is lexographically less than s2. If they | @return Return -1 if s1 is lexographically less than s2. If they |
are equavalent return 0. Otherwise return 1. | are equavalent return 0. Otherwise return 1. |
*/ | */ |
static int compare(const Char16* s1, const Char16* s2, Uint32 n); | static int compare(const Char16* s1, const Char16* s2, Uint32 n); |
| |
/** Compare two null-terminated strings. | /** Compare two null-terminated strings. |
@param s1 - First null-terminated string for the comparison |
@param s1 First null-terminated string for the comparison |
@param s2 - Second null-terminated string for the comparison |
@param s2 Second null-terminated string for the comparison |
@return If s1 is less than s2, return -1; if equal return 0; | @return If s1 is less than s2, return -1; if equal return 0; |
otherwise, return 1. | otherwise, return 1. |
| |
|
|
static int compare(const Char16* s1, const Char16* s2); | static int compare(const Char16* s1, const Char16* s2); |
| |
/** Compare two String objects for equality. | /** Compare two String objects for equality. |
@param s1 - First <TT>String</TT> for comparison. |
@param s1 First <TT>String</TT> for comparison. |
@param s2 - Second <TT>String</TT> for comparison. |
@param s2 Second <TT>String</TT> for comparison. |
| |
@return Boolean true if the two strings are equal. | @return Boolean true if the two strings are equal. |
<pre> | <pre> |
|
|
char* _rep; | char* _rep; |
}; | }; |
| |
|
inline Uint32 _Length(const String& s1) { return s1.size(); } |
|
|
|
inline Uint32 _Length(const char* s1) { return strlen(s1); } |
|
|
|
inline Uint32 _Length(const char) { return 1; } |
|
|
|
template<class S1, class S2> |
|
inline String Cat(const S1& s1, const S2& s2) |
|
{ |
|
String tmp; |
|
tmp.reserve(_Length(s1) + _Length(s2)); |
|
tmp.append(s1); |
|
tmp.append(s2); |
|
return tmp; |
|
} |
|
|
|
template<class S1, class S2, class S3> |
|
inline String Cat(const S1& s1, const S2& s2, const S3& s3) |
|
{ |
|
String tmp; |
|
tmp.reserve(_Length(s1) + _Length(s2) + _Length(s3)); |
|
tmp.append(s1); |
|
tmp.append(s2); |
|
tmp.append(s3); |
|
return tmp; |
|
} |
|
|
|
template<class S1, class S2, class S3, class S4> |
|
inline String Cat(const S1& s1, const S2& s2, const S3& s3, const S4& s4) |
|
{ |
|
String tmp; |
|
tmp.reserve(_Length(s1) + _Length(s2) + _Length(s3) + _Length(s4)); |
|
tmp.append(s1); |
|
tmp.append(s2); |
|
tmp.append(s3); |
|
tmp.append(s4); |
|
return tmp; |
|
} |
|
|
|
template<class S1, class S2, class S3, class S4, class S5> |
|
inline String Cat( |
|
const S1& s1, |
|
const S2& s2, |
|
const S3& s3, |
|
const S4& s4, |
|
const S5& s5) |
|
{ |
|
String tmp; |
|
|
|
tmp.reserve(_Length(s1) + _Length(s2) + _Length(s3) + _Length(s4) + |
|
_Length(s5)); |
|
|
|
tmp.append(s1); |
|
tmp.append(s2); |
|
tmp.append(s3); |
|
tmp.append(s4); |
|
tmp.append(s5); |
|
|
|
return tmp; |
|
} |
|
|
|
template<class S1, class S2, class S3, class S4, class S5, class S6> |
|
inline String Cat( |
|
const S1& s1, |
|
const S2& s2, |
|
const S3& s3, |
|
const S4& s4, |
|
const S5& s5, |
|
const S6& s6) |
|
{ |
|
String tmp; |
|
|
|
tmp.reserve(_Length(s1) + _Length(s2) + _Length(s3) + _Length(s4) + |
|
_Length(s5) + _Length(s6)); |
|
|
|
tmp.append(s1); |
|
tmp.append(s2); |
|
tmp.append(s3); |
|
tmp.append(s4); |
|
tmp.append(s5); |
|
tmp.append(s6); |
|
|
|
return tmp; |
|
} |
|
|
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |
| |
#endif /* Pegasus_String_h */ | #endif /* Pegasus_String_h */ |
|
|