| #ifndef ANDROID_DVR_PERFORMANCED_STRING_TRIM_H_ |
| #define ANDROID_DVR_PERFORMANCED_STRING_TRIM_H_ |
| |
| #include <functional> |
| #include <locale> |
| #include <string> |
| |
| namespace android { |
| namespace dvr { |
| |
| // Trims whitespace from the left side of |subject| and returns the result as a |
| // new string. |
| inline std::string LeftTrim(std::string subject) { |
| subject.erase(subject.begin(), |
| std::find_if(subject.begin(), subject.end(), |
| std::not1(std::ptr_fun<int, int>(std::isspace)))); |
| return subject; |
| } |
| |
| // Trims whitespace from the right side of |subject| and returns the result as a |
| // new string. |
| inline std::string RightTrim(std::string subject) { |
| subject.erase(std::find_if(subject.rbegin(), subject.rend(), |
| std::not1(std::ptr_fun<int, int>(std::isspace))) |
| .base(), |
| subject.end()); |
| return subject; |
| } |
| |
| // Trims whitespace from the both sides of |subject| and returns the result as a |
| // new string. |
| inline std::string Trim(std::string subject) { |
| subject.erase(subject.begin(), |
| std::find_if(subject.begin(), subject.end(), |
| std::not1(std::ptr_fun<int, int>(std::isspace)))); |
| subject.erase(std::find_if(subject.rbegin(), subject.rend(), |
| std::not1(std::ptr_fun<int, int>(std::isspace))) |
| .base(), |
| subject.end()); |
| return subject; |
| } |
| |
| } // namespace dvr |
| } // namespace android |
| |
| #endif // ANDROID_DVR_PERFORMANCED_STRING_TRIM_H_ |