blob: 7094e9fdf87198bf5f861ac49e0bf56e4a70d847 [file] [log] [blame]
#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_