1#ifndef OSMSCOUT_UTIL_STRING_H
2#define OSMSCOUT_UTIL_STRING_H
31#include <osmscout/lib/CoreFeatures.h>
108 if (std::numeric_limits<N>::is_signed) {
129 std::string::size_type pos=0;
134 if (
string.empty()) {
141 if (
base==10 &&
string[0]==
'-') {
153 if (digitValue>=
base) {
160 if (digitValue==
base-1 &&
161 string.length()==
NumberDigits(std::numeric_limits<N>::max())) {
166 number=(N)digitValue;
172 while (pos<
string.length()) {
179 if (digitValue>=
base) {
183 if (std::numeric_limits<N>::max()/(N)
base-(N)digitValue<number) {
187 number=(N)(number*
base+digitValue);
206 std::string::size_type pos=0;
210 if (
string.empty()) {
214 if (
string[0]==
'-') {
227 if (digitValue>=
base) {
231 number=(N)digitValue;
235 while (pos<
string.length()) {
243 if (digitValue>=
base) {
247 if (std::numeric_limits<N>::max()/(N)
base-(N)digitValue<number) {
251 number=(N)(number*
base+digitValue);
259 template<
bool is_
signed,
typename N>
267 static inline bool f(
const std::string&
string,
278 static inline bool f(
const std::string&
string,
300 ::f(
string,number,
base);
336 const std::string& separator,
350 const std::string &search,
351 const std::string &replacement);
363 const std::string& separator);
376 const std::string& divider);
383 std::list<std::string>& tokens);
410 std::list<std::list<std::string> >& lists);
#define OSMSCOUT_API
Definition CoreImportExport.h:45
OSMSCOUT_API std::list< std::string > SplitString(const std::string &stringList, const std::string &separator, int maxSize=-1)
OSMSCOUT_API void GroupStringListToStrings(std::list< std::string >::const_iterator token, size_t listSize, size_t parts, std::list< std::list< std::string > > &lists)
OSMSCOUT_API std::wstring LocaleStringToWString(const std::string &text)
OSMSCOUT_API std::string UTF8StringToLocaleString(const std::string &text)
OSMSCOUT_API std::string WStringToUTF8String(const std::wstring &text)
OSMSCOUT_API std::string LocaleStringToUTF8String(const std::string &text)
OSMSCOUT_API std::string ReplaceString(const std::string &in, const std::string &search, const std::string &replacement)
OSMSCOUT_API std::string ByteSizeToString(FileOffset size, const Locale &locale=Locale::ByEnvironmentSafe())
OSMSCOUT_API size_t CountWords(const std::string &text)
OSMSCOUT_API std::string WStringToLocaleString(const std::wstring &text)
OSMSCOUT_API std::u32string UTF8StringToU32String(const std::string &text)
uint64_t FileOffset
Definition OSMScoutTypes.h:46
OSMSCOUT_API bool StringToBool(const char *string, bool &value)
OSMSCOUT_API bool GetDigitValue(char digit, size_t &result)
OSMSCOUT_API void TokenizeString(const std::string &input, std::list< std::string > &tokens)
OSMSCOUT_API std::string GetFirstInStringList(const std::string &stringList, const std::string ÷r)
OSMSCOUT_API std::list< std::string > SplitStringAtSpace(const std::string &input)
OSMSCOUT_API void SimplifyTokenList(std::list< std::string > &tokens)
OSMSCOUT_API std::wstring UTF8StringToWString(const std::string &text)
bool StringToNumber(const std::string &string, N &number, size_t base=10)
Definition String.h:295
OSMSCOUT_API std::string Trim(const std::string &str, char trimmedChar=' ')
OSMSCOUT_API std::string UTF8StringToLower(const std::string &text)
OSMSCOUT_API const char * BoolToString(bool value)
OSMSCOUT_API bool ParseISO8601TimeString(const std::string &timeStr, Timestamp ×tamp)
std::chrono::system_clock::time_point Timestamp
Definition Time.h:27
OSMSCOUT_API std::string UTF8Transliterate(const std::string &text)
OSMSCOUT_API std::string UTF8NormForLookup(const std::string &text)
OSMSCOUT_API std::string NumberToString(long value, const Locale &locale)
bool StringToNumberUnsigned(const std::string &string, N &number, size_t base=10)
Definition String.h:200
OSMSCOUT_API std::string FloatToString(double value, const Locale &locale, uint32_t precision=3)
OSMSCOUT_API std::string GetTokensFromEnd(const std::list< std::string > &tokens, size_t count)
size_t NumberDigits(const N &number, size_t base=10)
Definition String.h:102
OSMSCOUT_API std::string GetTokensFromStart(const std::list< std::string > &tokens, size_t count)
OSMSCOUT_API std::optional< std::pair< std::string, std::string > > SplitStringToPair(const std::string &str, const std::string &separator)
OSMSCOUT_API std::string UTF8StringToUpper(const std::string &text)
@ base
way center
Definition Styles.h:45
OSMSCOUT_API std::string DurationString(const Duration &duration)
OSMSCOUT_API std::string TimestampToISO8601TimeString(const Timestamp ×tamp)
Timestamp::duration Duration
Definition Time.h:29
bool StringToNumberSigned(const std::string &string, N &number, size_t base=10)
Definition String.h:123
static bool f(const std::string &string, N &number, size_t base=10)
Definition String.h:278
static bool f(const std::string &string, N &number, size_t base=10)
Definition String.h:267