ImFusion SDK 4.3
ImFusion::String Namespace Reference

Collection of utility functions to work on or with strings. More...

Detailed Description

Collection of utility functions to work on or with strings.

See also
ImFusionCoreString

Enumerations

enum  SplitOptions { Default = 0 , AnyOf = 1 << 0 , IgnoreEmptyParts = 1 << 1 , TrimWhitespace = 1 << 2 }
 Bitflag enumeration for String::split() More...
 
enum  CaseSensitivity { CaseSensitive = 0 , CaseInsensitive = 1 }
 Enumeration for levenshteinDistance.
 

Functions

void replaceAll (std::string &str, std::string_view from, std::string_view to)
 Replaces all occurrences of from in str with to.
 
std::string replaceAllCopy (std::string_view str, std::string_view from, std::string_view to)
 Returns a copy of str with all occurrences of replaced by to.
 
void removeLetters (std::string &str)
 Removes all alphabetic characters in place.
 
std::string fromDurationMs (double durationInMilliseconds)
 Convert a duration in milliseconds to a human-readable string with days, hours, minutes where applicable.
 
std::string fromDouble (double value, std::optional< int > maxDecimals=std::nullopt)
 Convert a double to a string representation, with a limited max number of decimals.
 
std::string ordinal (int num)
 Convert an integer number to its ordinal number string representation, such as "1st", "2nd", "3rd", "4th", etc.
 
int naturalCompare (const std::string &str1, const std::string &str2)
 Compare two strings according to the natural sort order.
 
int levenshteinDistance (const std::string &source, const std::string &target, CaseSensitivity sensitivity=CaseSensitive)
 Computes the Levenshtein distance (also known as Edit distance) between two strings.
 

Comparison and substring search

bool iEquals (std::string_view a, std::string_view b)
 Compares both strings case insensitive, returns true if they are the same (case insensitive)
 
bool startsWith (std::string_view str, std::string_view prefix)
 Checks whether the input string has the given prefix.
 
bool iStartsWith (std::string_view str, std::string_view prefix)
 Checks whether the input string has the given prefix, ignoring case (case-insensitive).
 
bool endsWith (std::string_view str, std::string_view suffix)
 Checks whether the input string has the given suffix.
 
bool iEndsWith (std::string_view str, std::string_view suffix)
 Checks whether the input string has the given suffix, ignoring case (case-insensitive).
 
bool contains (std::string_view str, std::string_view substring)
 Checks whether the input string contains the given substring.
 
bool iContains (std::string_view str, std::string_view substring)
 Checks whether the input string contains the given substring, ignoring case (case-insensitive).
 
bool containsAnyOf (std::string_view str, std::string_view characters)
 Checks whether the input string contains any of the given characters.
 
bool iContainsAnyOf (std::string_view str, std::string_view characters)
 Checks whether the input string contains any of the given characters, ignoring case (case-insensitive).
 
bool matchesPattern (std::string_view str, std::string_view pattern)
 Checks if a string matches a pattern containing * and ? wildcards.
 

Remove whitespace at the ends

void trim (std::string &str, std::string_view whitespace=" \t\f\v\r\n")
 Removes all leading and trailing occurrences of the characters in whitespace from str in-place.
 
void ltrim (std::string &str, std::string_view whitespace=" \t\f\v\r\n")
 Removes all leading occurrences of the characters in whitespace from str in-place.
 
void rtrim (std::string &str, std::string_view whitespace=" \t\f\v\r\n")
 Removes all trailing occurrences of the characters in whitespace from str in-place.
 
std::string trimCopy (std::string_view str, std::string_view whitespace=" \t\f\v\r\n")
 Returns a copy of str with all leading and trailing occurrences of whitespace removed.
 
std::string ltrimCopy (std::string_view str, std::string_view whitespace=" \t\f\v\r\n")
 Returns a copy of str with all leading occurrences of the characters in whitespace removed.
 
std::string rtrimCopy (std::string_view str, std::string_view whitespace=" \t\f\v\r\n")
 Returns a copy of str with all trailing occurrences of the characters in whitespace removed.
 
std::string_view trimRef (std::string_view str, std::string_view whitespace=" \t\f\v\r\n")
 Returns a std::string_view into the input string where all leading and trailing occurrences of whitespace are removed.
 
std::string_view ltrimRef (std::string_view str, std::string_view whitespace=" \t\f\v\r\n")
 Returns a std::string_view into the input string where all leading occurrences of whitespace are removed.
 
std::string_view rtrimRef (std::string_view str, std::string_view whitespace=" \t\f\v\r\n")
 Returns a std::string_view into the input string where all trailing occurrences of whitespace are removed.
 

Change capitalization of 7 bit ASCII strings

void toLower (std::string &input)
 Convert the input string to lower case characters.
 
void toUpper (std::string &input)
 Convert the input string to upper case characters.
 
std::string toLowerCopy (std::string_view input)
 Convert the input string to lower case characters.
 
std::string toUpperCopy (std::string_view input)
 Convert the input string to upper case characters.
 

Split strings into individual elements and vice-versa

template<typename Container, typename UnaryOperation>
std::string join (const Container &list, UnaryOperation unary_op, const std::string &sep)
 Joins the list to a string and separates the elements with sep.
 
template<typename C>
std::string join (const C &list, const std::string &sep)
 Joins the list to a string and separates the elements with sep.
 
template<typename T>
std::string join (const std::initializer_list< T > &list, const std::string &sep)
 Helper methods for initializer lists.
 
std::string joinNonEmpty (const std::vector< std::string > &vec, const std::string &sep="")
 Joins a vector of strings together, interposing a separator (empty by default).
 
std::vector< std::stringsplit (std::string_view input, std::string_view separator, Flags< SplitOptions > splitOptions=SplitOptions::Default)
 Splits input into substrings based on the given separator and splitOptions.
 
std::vector< std::string_viewsplitRef (std::string_view input, std::string_view separator, Flags< SplitOptions > splitOptions=SplitOptions::Default)
 Splits input into substring views based on the given separator and splitOptions.
 
std::vector< std::stringsplitCamelCase (const std::string &input)
 Split camel case string into words.
 
Search Tab / S to search, Esc to close