Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef String_H
00012 #define String_H
00013
00014 #include <string>
00015 #include <sstream>
00016 #include <vector>
00017 #include <iostream>
00018
00024 class String
00025 {
00026 public:
00027
00029 String();
00030
00032 ~String();
00033
00034 static std::string upCase ( std::string text );
00035
00036 static std::string downCase ( std::string text );
00037
00038 static std::string removeCharacters ( std::string text, std::string characters );
00039
00043 static std::vector<std::string> explode ( const std::string& text, const std::string& separators, bool keepSeparators = false );
00044
00045 template<class C>
00046 inline static std::string implode ( C& container, const std::string& separator )
00047 {
00048 typename C::const_iterator it;
00049 typename C::const_iterator it2;
00050 std::string result = "";
00051 for ( it = container.begin() ; it != container.end(); ++it )
00052 {
00053 it2 = it;
00054 it2++;
00055 if ( it2 != container.end() )
00056 {
00057 result += *it + separator;
00058 }
00059 else
00060 {
00061 result += *it;
00062 }
00063 }
00064 return result;
00065 }
00066
00067 template<class T>
00068 inline static std::vector<T> convertTo ( std::vector<std::string> strVec )
00069 {
00070 std::vector<T> tVec;
00071 tVec.resize ( strVec.size() );
00072
00073 for ( unsigned i = 0; i < strVec.size(); i++ )
00074 {
00075 std::stringstream s;
00076 s << strVec[i];
00077 s >> tVec[i];
00078 }
00079 return tVec;
00080 }
00081
00084 template<class T>
00085 inline static T convertTo ( std::string str )
00086 {
00087 std::stringstream s;
00088 T t;
00089 s << str;
00090 s >> t;
00091 return t;
00092 }
00093
00095 template<class T>
00096 inline static std::string toString ( T value )
00097 {
00098 std::ostringstream s;
00099 s << value;
00100 return s.str();
00101 }
00102
00103 private:
00104
00105 };
00106
00107 #endif