blob: 4bdc073a78770cd1bfe6e07ea73ed8660844dfe0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#include "core/pch.hh"
#include "core/utils/string.hh"
constexpr static const char* WHITESPACE_CHARS = " \t\r\n";
bool utils::is_whitespace(const std::string& string)
{
if(string.find_first_not_of(WHITESPACE_CHARS) == std::string::npos) {
return true;
}
else if((string.size() == 1) && string[0] == 0x00) {
return true;
}
else {
return string.empty();
}
}
std::string utils::join(const std::vector<std::string>& strings, const std::string& separator)
{
std::ostringstream stream;
for(const std::string& str : strings)
stream << str << separator;
return stream.str();
}
std::vector<std::string> utils::split(const std::string& string, const std::string& separator)
{
std::size_t pos = 0;
std::size_t prev = 0;
std::vector<std::string> result;
while((pos = string.find(separator, prev)) != std::string::npos) {
result.push_back(string.substr(prev, pos - prev));
prev = pos + separator.length();
}
if(prev <= string.length()) {
result.push_back(string.substr(prev, string.length() - prev));
}
return result;
}
std::string utils::trim_whitespace(const std::string& string)
{
auto su = string.find_first_not_of(WHITESPACE_CHARS);
auto sv = string.find_last_not_of(WHITESPACE_CHARS);
if(su == std::string::npos) {
return std::string();
}
else {
return string.substr(su, sv - su + 1);
}
}
|