00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef INCL_WSTRING
00037 #define INCL_WSTRING
00038
00040 #include "base/util/ArrayElement.h"
00041 #include "base/globalsdef.h"
00042 #include "base/fscapi.h"
00043 BEGIN_NAMESPACE
00044
00045 class ArrayList;
00046 class StringBuffer;
00047
00048 #define DEFAULT_DELIMITER (const WCHAR* )TEXT(" ")
00049
00053 class WString: public ArrayElement {
00054 public:
00055
00056 static const size_t npos;
00057
00058 WString(const WCHAR* str = NULL, size_t len = npos);
00059
00060 WString(const WString &sb);
00061
00062 ~WString();
00063
00064 WString& append(const WCHAR*);
00065
00066 WString& append(unsigned long u, bool sign = true);
00067
00068 WString& append(WString& s);
00069
00070 WString& append(WString* str);
00071
00072 WString& set(const WCHAR*);
00073
00077 WString& reset();
00078
00082 const WCHAR* getChars() const;
00083 inline const WCHAR* c_str() const { return s; };
00084
00090 size_t find(const WCHAR *str, size_t pos = 0) const;
00091
00097 size_t ifind(const WCHAR *str, size_t pos = 0) const;
00098
00105 size_t replace(const WCHAR *from, const WCHAR *to, size_t pos = 0);
00111 int replaceAll(const WCHAR *from, const WCHAR *to, size_t pos = 0);
00112
00119 ArrayList &split (ArrayList &tokens,
00120 const WCHAR *delimiters = DEFAULT_DELIMITER ) const;
00121
00128 WString& join(ArrayList &tokens, const WCHAR *separator);
00129
00136 WString substr(size_t pos, size_t len = npos) const;
00137
00142 unsigned long length() const;
00143
00147 void reserve(size_t len);
00148
00152 WString& upperCase() ;
00153
00157 WString& lowerCase() ;
00158
00162 bool icmp(const WCHAR *sc) const ;
00163
00167 bool empty() const;
00168
00172 bool null() const;
00173
00177 ArrayElement* clone() ;
00178
00182 WString& operator= (const WCHAR* sc) ;
00183 WString& operator= (const WString& s) ;
00184 WString& operator= (const StringBuffer& s) ;
00185 WString& operator+= (const WCHAR* sc) ;
00186 WString& operator+= (const WString& s) ;
00187 WString& operator+= (const StringBuffer& s) ;
00188 bool operator== (const WCHAR* sc) const ;
00189 bool operator== (const WString& sb) const ;
00190 bool operator== (const StringBuffer& sb) const ;
00191 bool operator!= (const WCHAR* sc) const ;
00192 bool operator!= (const WString& s) const ;
00193 bool operator!= (const StringBuffer& sb) const ;
00194
00195 inline operator const WCHAR*() const { return s; } ;
00196
00197 private:
00198 WCHAR* s;
00199 size_t size;
00200
00201
00202 void getmem(size_t len);
00203
00204 void freemem();
00205 };
00206
00207 WString operator+(const WString& x, const WCHAR *y);
00208
00209
00210 END_NAMESPACE
00211
00213 #endif
00214