Internal helper class.
More...
#include <StringTools.h>
|
static bool | Contains (const std::string &str, const char c) |
| Will return wether or not a given char is in a string. More...
|
|
static std::string | Replace (const std::string &str, const char find, const std::string &subst) |
| Will replace a part of a string with another string. More...
|
|
static std::string | Replace (const std::string &str, const std::string &find, const std::string &subst) |
| Will replace a part of a string with another string. More...
|
|
static bool | IsNumeric (const std::string &str, const bool allowDecimalPoint=false) |
| Will return true if the given string consists only of digits (including signage) More...
|
|
static bool | ParseNumber (const std::string &str, bool &out_isInt, long double &out_number) |
| Will convert the number in str to a number. More...
|
|
static std::vector< std::string > | SplitString (const std::string &str, const char delimiter) |
| Will split a string by a delimiter char. The delimiter will be excluded! More...
|
|
static std::vector< std::string > | SplitString (const std::string &str, const std::string &delimiter) |
| Will split a string by a delimiter string. The delimiter will be excluded! More...
|
|
static std::string | ToLower (const std::string &str) |
| Will make a string all lower-case. More...
|
|
Internal helper class.
Feel free to use it tho.
Definition at line 9 of file StringTools.h.
◆ Contains()
bool StringTools::Contains |
( |
const std::string & |
str, |
|
|
const char |
c |
|
) |
| |
|
static |
Will return wether or not a given char is in a string.
Definition at line 3 of file StringTools.cpp.
5 for (
const char& i : str)
◆ IsNumeric()
bool StringTools::IsNumeric |
( |
const std::string & |
str, |
|
|
const bool |
allowDecimalPoint = false |
|
) |
| |
|
static |
Will return true if the given string consists only of digits (including signage)
Definition at line 54 of file StringTools.cpp.
56 if (str.length() == 0)
return false;
58 bool alreadyParsedDecimalPoint =
false;
59 std::size_t digitCount = 0;
61 for (std::size_t i = 0; i < str.length(); i++)
64 ((str[i] >=
'0') && (str[i] <=
'9')) ||
65 ((str[i] ==
'-') && (i == 0)) ||
66 ((str[i] ==
'.') && (allowDecimalPoint) && (!alreadyParsedDecimalPoint) && (digitCount > 0))
72 if (((str[i] >=
'0') && (str[i] <=
'9'))) digitCount++;
73 if (str[i] ==
'.') alreadyParsedDecimalPoint =
true;
77 return digitCount > 0;
◆ ParseNumber()
bool StringTools::ParseNumber |
( |
const std::string & |
str, |
|
|
bool & |
out_isInt, |
|
|
long double & |
out_number |
|
) |
| |
|
static |
Will convert the number in str to a number.
Returns wether or not the operation was successful.
Also returns wether the number is an integer, or floating point. If int, cast out_number to int.
Definition at line 80 of file StringTools.cpp.
82 bool isDecimal =
false;
84 if (str.length() == 0)
return false;
85 if (
Contains(str,
'.')) isDecimal =
true;
91 out_number = std::stold(str);
94 catch (std::invalid_argument&)
98 catch (std::out_of_range&)
107 out_number = (
long double)std::stoll(str);
110 catch (std::invalid_argument&)
114 catch (std::out_of_range&)
◆ Replace() [1/2]
std::string StringTools::Replace |
( |
const std::string & |
str, |
|
|
const char |
find, |
|
|
const std::string & |
subst |
|
) |
| |
|
static |
Will replace a part of a string with another string.
Definition at line 12 of file StringTools.cpp.
16 for (std::size_t i = 0; i < str.length(); i++)
18 if (str[i] != find) ss << str[i];
◆ Replace() [2/2]
std::string StringTools::Replace |
( |
const std::string & |
str, |
|
|
const std::string & |
find, |
|
|
const std::string & |
subst |
|
) |
| |
|
static |
Will replace a part of a string with another string.
Definition at line 25 of file StringTools.cpp.
27 if (find.length() == 0)
return str;
31 std::size_t posFound = 0;
32 std::size_t lastFound = 0;
34 while (posFound != std::string::npos)
37 posFound = str.find(find, posFound);
39 if (posFound != std::string::npos)
41 ss << str.substr(lastFound, posFound - lastFound) << subst;
42 posFound += find.length();
46 ss << str.substr(lastFound, (str.length()) - lastFound);
◆ SplitString() [1/2]
std::vector< std::string > StringTools::SplitString |
( |
const std::string & |
str, |
|
|
const char |
delimiter |
|
) |
| |
|
static |
Will split a string by a delimiter char. The delimiter will be excluded!
Definition at line 123 of file StringTools.cpp.
125 if (str.length() == 0)
return std::vector<std::string>();
◆ SplitString() [2/2]
std::vector< std::string > StringTools::SplitString |
( |
const std::string & |
str, |
|
|
const std::string & |
delimiter |
|
) |
| |
|
static |
Will split a string by a delimiter string. The delimiter will be excluded!
Definition at line 130 of file StringTools.cpp.
132 if (str.length() == 0)
return std::vector<std::string>();
134 std::vector<std::string> parts;
136 if (delimiter.length() == 0)
138 for (std::size_t i = 0; i < str.length(); i++)
140 parts.push_back(std::string({ str[i] }));
145 std::size_t posFound = 0;
146 std::size_t lastFound = 0;
148 while (posFound != std::string::npos)
150 lastFound = posFound;
151 posFound = str.find(delimiter, posFound);
155 if (posFound != std::string::npos)
157 found = str.substr(lastFound, posFound - lastFound);
158 posFound += delimiter.length();
162 found = str.substr(lastFound, str.length() - lastFound);
165 parts.push_back(found);
◆ ToLower()
std::string StringTools::ToLower |
( |
const std::string & |
str | ) |
|
|
static |
Will make a string all lower-case.
Definition at line 171 of file StringTools.cpp.
173 std::stringstream ss;
174 for (std::size_t i = 0; i < str.length(); i++)
176 if ((str[i] >=
'A') && (str[i] <=
'Z')) ss << (char)(((
int)str[i]) + 32);
177 else if (str[i] == -60) ss << (char)-28;
178 else if (str[i] == -42) ss << (char)-10;
179 else if (str[i] == -36) ss << (char)-4;
The documentation for this class was generated from the following files: