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
00042 class ArrayList;
00043 class StringBuffer;
00044
00045 #define DEFAULT_DELIMITER (const WCHAR* )TEXT(" ")
00046
00050 class WString: public ArrayElement {
00051 public:
00052
00053 static const size_t npos;
00054
00055 WString(const WCHAR* str = NULL, size_t len = npos);
00056
00057 WString(const WString &sb);
00058
00059 ~WString();
00060
00061 WString& append(const WCHAR*);
00062
00063 WString& append(unsigned long u, BOOL sign = TRUE);
00064
00065 WString& append(WString& s);
00066
00067 WString& append(WString* str);
00068
00069 WString& set(const WCHAR*);
00070
00074 WString& reset();
00075
00079 const WCHAR* getChars() const;
00080 inline const WCHAR* c_str() const { return s; };
00081
00087 size_t find(const WCHAR *str, size_t pos = 0) const;
00088
00094 size_t ifind(const WCHAR *str, size_t pos = 0) const;
00095
00102 size_t replace(const WCHAR *from, const WCHAR *to, size_t pos = 0);
00108 int replaceAll(const WCHAR *from, const WCHAR *to, size_t pos = 0);
00109
00116 ArrayList &split (ArrayList &tokens,
00117 const WCHAR *delimiters = DEFAULT_DELIMITER ) const;
00118
00125 WString& join(ArrayList &tokens, const WCHAR *separator);
00126
00133 WString substr(size_t pos, size_t len = npos) const;
00134
00139 unsigned long length() const;
00140
00144 void reserve(size_t len);
00145
00149 WString& upperCase() ;
00150
00154 WString& lowerCase() ;
00155
00159 bool icmp(const WCHAR *sc) const ;
00160
00164 bool empty() const;
00165
00169 bool null() const;
00170
00174 ArrayElement* clone() ;
00175
00179 WString& operator= (const WCHAR* sc) ;
00180 WString& operator= (const WString& s) ;
00181 WString& operator= (const StringBuffer& s) ;
00182 WString& operator+= (const WCHAR* sc) ;
00183 WString& operator+= (const WString& s) ;
00184 WString& operator+= (const StringBuffer& s) ;
00185 bool operator== (const WCHAR* sc) const ;
00186 bool operator== (const WString& sb) const ;
00187 bool operator== (const StringBuffer& sb) const ;
00188 bool operator!= (const WCHAR* sc) const ;
00189 bool operator!= (const WString& s) const ;
00190 bool operator!= (const StringBuffer& sb) const ;
00191
00192 inline operator const WCHAR*() const { return s; } ;
00193
00194 private:
00195 WCHAR* s;
00196 size_t size;
00197
00198
00199 void getmem(size_t len);
00200
00201 void freemem();
00202 };
00203
00204 WString operator+(const WString& x, const WCHAR *y);
00205
00207 #endif
00208