00001
00002
00003
00004
00005
00006
00007
00008 #ifndef _SK_UTIL_STRING_
00009 #define _SK_UTIL_STRING_
00010
00011 #include <sk/util/Object.h>
00012 #include <string>
00013
00014 namespace sk {
00015 namespace util {
00016 class String
00017 : public virtual sk::util::Object,
00018 public std::string
00019 {
00020 public:
00021 String();
00022 String(char character);
00023 String(const char* buffer);
00024 String(const char* buffer, int size);
00025 String(const std::string& string);
00026 String(const sk::util::String& string);
00027 String(const std::string& string, int size);
00028 virtual ~String();
00029
00030 String& operator=(const sk::util::String& other);
00031
00033 bool isEmpty() const;
00034
00036 int size() const;
00037 int length() const;
00038
00041 const String trim() const;
00042 const String squeeze(char character) const;
00043 const String strip() const;
00044
00046 bool startsWith(const sk::util::String& prefix) const;
00047 bool startsWith(const char* prefix) const;
00048
00051 int indexOf(char character) const;
00052
00055 int lastIndexOf(char character) const;
00056
00058 const String substring(int beginIndex) const;
00059
00061 const String substring(int beginIndex, int endIndex) const;
00062
00064 bool endsWith(const sk::util::String& suffix) const;
00065 bool endsWith(const char* suffix) const;
00066
00068 bool equals(const sk::util::String& other) const;
00069 bool equals(const char* other) const;
00070
00072 bool equalsIgnoreCase(const sk::util::String& other) const;
00073 bool equalsIgnoreCase(const char* other) const;
00074
00076 const char* getChars() const;
00077
00078
00079 String& self();
00080 const String& self() const;
00081 const sk::util::Class getClass() const;
00082 const String toString() const;
00083 const String inspect() const;
00084 String* clone() const;
00085
00086 static const String EMPTY;
00087 };
00088 }
00089 }
00090
00091 const sk::util::String operator + (const sk::util::String& s1, const sk::util::String& s2);
00092
00093 const sk::util::String operator + (const sk::util::String& string, const char* buffer);
00094 const sk::util::String operator + (const char* buffer, const sk::util::String& string);
00095
00096 const sk::util::String operator + (const sk::util::String& string, char character);
00097 const sk::util::String operator + (char character, const sk::util::String& string);
00098
00099 const sk::util::String operator + ( const sk::util::String& s1, const std::string& s2);
00100 const sk::util::String operator + (const std::string& s1, const sk::util::String& s2);
00101
00102 #endif