123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- #ifndef STRINGTOOLSINCLUDE
- #define STRINGTOOLSINCLUDE
- #include <vector>
- #include <string>
- #include <sstream>
- #include <core/vector/VectorT.h>
- namespace NICE
- {
- class StringTools
- {
- public:
-
- static void normalize_string(std::string & s);
-
- static void split(const std::string & s, char splitChar, std::vector<
- std::string> & list);
-
- static void splitVector(const std::string & s, char splitChar,
- NICE::Vector & x);
-
- static void trimbounds(std::string & value, char trimChar);
-
- static std::string chomp(std::string s);
-
- static std::string trim(std::string s, const std::string& drop = " ");
-
- static std::string baseName(const std::string& str, bool extension = true);
-
- static bool regexMatch(const std::string & s, const std::string & regex);
-
- static bool regexMatch(const std::string & s, const std::string & regex,
- std::vector<std::string> & submatches);
-
- static bool regexSubstitute(std::string & s, const std::string & regex,
- const std::string & subst);
-
- template<class F>
- static F convert(const std::string & s);
-
- template<class F>
- static bool convert(const std::string & s, F & i);
-
- template<class F>
- static std::string convertToString(const F & s);
-
- template<class F>
- static std::string convertToString(const F & s, uint precision);
- };
- template<class F>
- F StringTools::convert(const std::string & s)
- {
- std::istringstream is(s);
- F i;
- is >> i;
- return i;
- }
- template<class F>
- bool StringTools::convert(const std::string & s, F & i)
- {
- std::istringstream is(s);
- is >> i;
- return (!is.fail());
- }
- template<class F>
- std::string StringTools::convertToString(const F & s)
- {
- std::ostringstream os;
- os << s;
- return os.str();
- }
- template<class F>
- std::string StringTools::convertToString(const F & s, uint precision)
- {
- std::ostringstream os;
- os.precision(precision);
- os.setf(std::ios::fixed,std::ios::floatfield);
- os << s;
- return os.str();
- }
- }
- #endif
|