See More

#include "stringUtils.h" #include "stringBuffer.h" #ifdef WIN32 #else #include #endif #include #include #include //__USING_STL_NS //__WILLOW_BEGIN_NAMESPACE //-------------------------------------------------------------------------- // //-------------------------------------------------------------------------- StringUtils::StringUtils() {} //-------------------------------------------------------------------------- // static methods //-------------------------------------------------------------------------- string StringUtils::toUpperCase(const string& s) { string d; std::transform(s.begin(), s.end(), std::insert_iterator(d, d.begin()), (int(*)(int))toupper); return d; } string StringUtils::toLowerCase(const string& s) { string d; std::transform(s.begin(), s.end(), std::insert_iterator(d, d.begin()), (int(*)(int))tolower); return d; } string StringUtils::ltrim(const string& s) { string::size_type pos = s.find_first_not_of(' '); if (pos == string::npos) { return string(); } return s.substr(pos); } string StringUtils::rtrim(const string& s) { string::size_type pos = s.find_first_not_of(' '); if (pos == string::npos) { return string(); } string::size_type n = s.find_last_not_of(' ') + 1; return s.substr(0, n); } string StringUtils::trim(const string& s) { string::size_type pos = s.find_first_not_of(' '); if (pos == string::npos) { return string(); } string::size_type n = s.find_last_not_of(' ') - pos + 1; return s.substr(pos, n); } string StringUtils::replace(const string& __s,size_t __pos, size_t __n, const string& __str) { StringBuffer sb(__s); return sb.replace(__pos,__n,__str).str(); } string StringUtils::replaceAll(const string& __s,size_t __pos,const string& __src, const string& __dst) { StringBuffer sb(__s); return sb.replaceAll(__pos,__src,__dst).str(); } bool StringUtils::equalsIgnoreCase(const string& s1, const string& s2) { return toLowerCase(s1) == toLowerCase(s2); } int StringUtils::compareNoCase(const string& s1,const string& s2) { return strcasecmp(s1.c_str(),s2.c_str()) ; } bool StringUtils::endsWith(const string& s, const string& suffix) { return (s.length() - s.rfind(suffix)) == suffix.length(); } bool StringUtils::startsWith(const string& s, const string& prefix) { return (s.find(prefix) == 0); } string StringUtils::format(const char* format, ...) { va_list ap; //-------------------------------------------- int size=1024; int n=0; char* p = 0; if ((p = (char*)malloc (size)) == 0) { return string(); } while(true) { va_start(ap,format); n = vsnprintf(p,size,format,ap); va_end(ap); if(n > -1 && n < size) { string str(p,n); free(p); return str; } if(n>-1) { size = n + 1; } else { size *= 2; } if ((p = (char*)realloc (p, size)) == 0) { return string(); } } //-------------------------------------------- return string(); } string StringUtils::format(const char* format,va_list& ap) { //-------------------------------------------- int size=1024; int n=0; char* p = 0; if ((p = (char*)malloc (size)) == 0) { return string(); } while(true) { n = vsnprintf(p,size,format,ap); if(n > -1 && n < size) { string str(p,n); free(p); return str; } if(n>-1) { size = n + 1; } else { size *= 2; } if ((p = (char*)realloc (p, size)) == 0) { return string(); } } //-------------------------------------------- } string StringUtils::left(const string& s , int len) { return s.substr(0,len) ; } string StringUtils::mid(const string& s, int from,int len) { return s.substr(from,len) ; } string StringUtils::right(const string& s , int len) { return s.substr(s.length()-len) ; } //__WILLOW_END_NAMESPACE