API Documentation
Loading...
Searching...
No Matches
String Class Reference

The core String class for the NDEVR API. More...

#include <String.h>

Inheritance diagram for String:
[legend]
Collaboration diagram for String:
[legend]

Public Member Functions

void addUTF16AsUTF8 (const wchar *unicode)
 Converts a unicode null terminated string of UTF16 wchars into UTF8 and appends it to the end of the String.
 
bool addUTF16CharAsUTF8 (const wchar *unicode, uint04 &advance)
 Converts a single unicode character at advance into UTF8 and appends it to the end of the String.
 
void addWChar (const wchar &object)
 Converts a single unicode character UTF16 character into one or more UTF8 characters and appends them to the end of this String.
 
StringaddWhiteSpace (uint04 desired_string_size, uint04 desired_right_alignment_location=0, char whitespace=' ')
 Used for formatting, will, if necessary, add white space so that the string becomes a certain length. desired_right_alignment_location Will try and align the string to a location by prepending whitspace. desired_string_size will append space to try and make the string a given size.
 
Stringappend (const String &string)
 Appends a string to the back of this string.
 
bool beginsWith (const String &s, bool ignore_case=false) const
 Tests if this String starts with the specified prefix.
 
const char * c_str () const
 Used to access the raw memory of this string.
 
bool endsWith (const String &s, bool ignore_case=false) const
 Tests if this String ends with the specified suffix.
 
StringformatAsTitleString ()
 Formats the string to be a title, capitalizing important characters and replacing underscores with spaces.
 
StringformatNumberString (bool add_comma, uint04 decimals)
 For a string representing a number, makes the decimals equal to the the provided value and adds comma seperators if number is large enough.
 
StringformatNumberString (bool add_comma, uint04 min_decimals, uint04 max_decimals, uint04 min_digits, char decimal='.', char comma=',')
 Modifies the contents of this string, that represents a given number using the provided rules.
 
StringformatNumberString (uint04 decimals)
 For a string representing a number, makes the decimals equal to the the provided value Example: String("1000000").formatNumberString(2); will make "1000000.00".
 
uint04 fromHex () const
 Converts a hex value into an unsigned 4 byte number.
 
template<class t_type >
t_type getAs () const
 Converts a string into an object. To use this function an object must have overwritten StringStream<t_type>::fromString.
 
uint08 hash () const
 Creates a simple, quick hash of the object. See hash(const char* value) for details of the implementation.
 
uint08 hashLower () const
 Creates a simple, quick hash of the object. See hash(const char* value) for details of the implementation.
 
uint08 hashUpper () const
 Creates a simple, quick hash of the object. See hash(const char* value) for details of the implementation.
 
bool hasSubString (const char *sub_string, bool ignore_case=false) const
 Tests if this String contains the specified substring.
 
bool hasSubString (const String &sub_string, bool ignore_case=false) const
 Tests if this String contains the specified substring.
 
uint04 indexOf (const char &sub_string) const
 Given a substring specified by the input, returns the first index of that string, if it exists.
 
uint04 indexOf (const char &sub_string, uint04 start_pos) const
 Given a substring specified by the input, returns the first index of that string, if it exists.
 
uint04 indexOf (const char &sub_string, uint04 start_pos, uint04 size) const
 Given a substring specified by the input, returns the first index of that string, if it exists.
 
uint04 indexOf (const char *sub_string, bool ignore_case, uint04 start_index, uint04 size) const
 Given a substring specified by the input, returns the first index of that string, if it exists.
 
uint04 indexOf (const char *sub_string, bool ignore_case=false, uint04 start_index=0) const
 Given a substring specified by the input, returns the first index of that string, if it exists.
 
uint04 indexOf (const char *sub_string, char escape_char, bool ignore_case=false, uint04 start_index=0) const
 Given a substring specified by the input, returns the first index of that string, if it exists.
 
uint04 indexOf (const String &sub_string, bool ignore_case=false, uint04 start_index=0) const
 Given a substring specified by the input, returns the first index of that string, if it exists.
 
String insertNewLines (uint04 max_line_size) const
 Finds key areas to insert new lines such that the rows are at most, the length provided.
 
bool isNumeric () const
 Checks to see if the string is a numeric string.
 
bool isSameNoCase (const String &s) const
 Checks whether two strings match in a case-insensitive way.
 
uint04 lastIndexOf (const char *sub_string, bool ignore_case=false) const
 Given a substring specified by the input, returns the last index of that string, if it exists.
 
uint04 lastIndexOf (const char value, bool ignore_case=false) const
 Given a value specified by the input, returns the last index of that char, if it exists.
 
bool matchesWildcard (const String &pattern) const
 Checks whether two strings match allowing '' to be used as a wildcard pattern. For example, String("Hello").matchesWildcard("*ll") would return true.
 
 operator uint04 () const
 
 operator uint08 () const
 
bool operator!= (const char *const value) const
 
template<std::size_t t_size>
bool operator!= (const char(&string)[t_size])
 
bool operator!= (const String &value) const
 
size_t operator() () const
 
bool operator< (const String &value) const
 
Stringoperator= (const String &value)
 
Stringoperator= (String &&value) noexcept
 
bool operator== (const char *const value) const
 
template<std::size_t t_size>
bool operator== (const char(&string)[t_size])
 
bool operator== (const String &value) const
 
bool operator> (const String &value) const
 
String predictNextStringIncrement () const
 Looks in the string for key markers that might be an index, and attempts to increment the index. If no index is found a "1" will be inserted to the end of the string.
 
StringremoveNonAlphaNumeric (bool remove_tab=true, bool remove_space=true, bool remove_new_line=true, bool remove_r=true, bool remove_numbers=false)
 Removes any characters that aren't numbers or letters with other options available.
 
StringremoveNonNumeric ()
 Removes anything that is not a number or decimal ('0'-'9' or .)
 
Stringreplace (const Buffer< String, uint04, ObjectAllocator< false > > &sub_string, const Buffer< String, uint04, ObjectAllocator< false > > &replace_sub_string, bool ignore_case=false)
 Replaces ALL instances of the given substrings with the provided replacements. This allows safe replacement when the replacement string might contain the same data being replaced.
 
Stringreplace (const String &sub_string, const String &replace_sub_string, bool ignore_case=false)
 Replaces ALL instances of a given substring with the provided replacement.
 
String shortenString (uint04 size) const
 Shortans the string to the max size provided. If string is longer, searches for an ideal place to insert "...".
 
Buffer< String, uint04, ObjectAllocator< false > > splitString (char delimiter, bool preserve_empty=true) const
 Given a delimiter, breaks the string into subsections, returning an array of each subsection. If the String is empty, an empty String will be appended to the output if preserve_empty is true.
 
void splitString (char delimiter, Buffer< String, uint04, ObjectAllocator< false > > &strings, bool preserve_empty=true) const
 Given multiple delimiter, breaks the string into subsections, and APPENDS each substring to the given Buffer. If the String is empty, an empty Buffer will be appended if preserve_empty is true.
 
Buffer< String, uint04, ObjectAllocator< false > > splitString (const Buffer< char > &delimiter, bool preserve_empty=true) const
 Given multiple delimiter, breaks the string into subsections, returning an array of each subsection. If the String is empty, an empty String will be appended to the output if preserve_empty is true. For example, String("The quick, dog,,jumped").splitString({',', ' '}, true) would return {"The", "quick", "dog", "", "jumped"}.
 
void splitString (const Buffer< char > &delimiter, Buffer< String, uint04, ObjectAllocator< false > > &strings, bool preserve_empty=true) const
 Given multiple delimiter, breaks the string into subsections, and APPENDS each substring to the given Buffer. If the String is empty, an empty String will be appended if preserve_empty is true.
 
 String ()
 Constructor used to create an empty String*.
 
 String (const char *const string, uint04 size)
 String Constructor char arrays when the size is known. Slightly faster than iterating over a null-terminated array.
 
 String (const char *string)
 String Constructor for null terminated array of chars.
 
template<std::size_t N>
 String (const char(&string)[N])
 String Constructor for static char arrays.
 
 String (const String &string)
 Copy Constructor.
 
template<class t_type >
 String (const t_type &value)
 String Constructor that creates a string based off an object. To use this function an object must have overwritten StringStream<t_type>::toString.
 
template<std::size_t N>
 String (const wchar(&string)[N])
 String Constructor for static wchar arrays of UTF16 data.
 
 String (String &&string) noexcept
 Move contructor (No new memory allocation).
 
 String (uint04 size, const char &value)
 String Constructor creates a string of a size and fills it with a character.
 
String substr (uint04 start) const
 Creates a substring from a given start position, to the end of the string.
 
String substr (uint04 start, uint04 end) const
 Creates a substring from a given start position, to the given end position, non-inclusive of the end index. If the end index is greater than the size of the string, all data past start is returned.
 
String toLower () const
 changes all upper case characters into lower case characters.
 
String toUpper () const
 changes all lower case characters into upper case characters.
 
StringtrimWhiteSpace ()
 Trims any white space (tabs, spaces, etc) from the beginning and end of the string.
 
- Public Member Functions inherited from Buffer< char, uint04, ObjectAllocator< true >, BufferAllocator< char, uint04, true > >
void add (char &&object)
 Adds object to the end of the buffer.
 
void add (const char &object)
 Adds object to the end of the buffer.
 
void add (uint04 location, char &&object)
 Adds an object to a specific location. Equivelent to insert.
 
void add (uint04 location, const char &object)
 Adds and object to a specific location. Equivelent to insert.
 
void addAll (const Buffer< char, t_other_index_type, t_other_memory_allocator, t_other_memory_manager > &buffer)
 
void addAll (const char *buffer)
 
void addAll (const char *buffer, uint04 buffer_size)
 
void addAndFillSpace (uint04 space_to_add, const char &fill_object)
 
void addSpace (uint04 location, uint04 size)
 
void addSpace (uint04 space_to_add)
 Adds a space to the end of the buffer.
 
decltype(auto) begin ()
 
decltype(auto) begin () const
 
decltype(auto) begin (uint04 index) const
 
constexpr Buffer ()
 
constexpr Buffer (Buffer &&buffer) noexcept
 
constexpr Buffer (const Buffer &buffer)
 
 Buffer (const char *buffer, uint04 size)
 
 Buffer (const t_iterator &begin, const t_iterator &end)
 
 Buffer (std::initializer_list< char > l)
 
 Buffer (uint04 size)
 
 Buffer (uint04 size, const char &fill_object)
 
uint04 capacity () const
 
void clear ()
 
void clear (uint04 new_capacity)
 
sint04 compare (const Buffer &value) const
 Compares this Buffer to another to determine their relative ordering.
 
sint04 compare (const Buffer &value, uint04 start, uint04 end) const
 
bool contains (const char &element) const
 
bool contains (const char &element, const std::function< bool(const char &, const char &)> &equal_function) const
 
bool contains (const char &element, uint04 start) const
 
bool contains (const char &element, uint04 start, uint04 search_size) const
 
uint04 count (const char &element) const
 
decltype(auto) end ()
 
decltype(auto) end () const
 
decltype(auto) end (uint04 index)
 
void ensureCapacity (uint04 new_capacity, bool ensure_not_greater=false, bool ensure_not_less=true)
 
bool equals (const Buffer &buffer) const
 
decltype(auto) get (uint04 index)
 
decltype(auto) get (uint04 index) const
 
Buffer getAll (uint04 start, uint04 size)
 
Buffer< t_other_type, t_other_index_type, t_other_memory_allocator, t_other_memory_manager > getAs () const
 Gets a copy of this buffer, with filled objects t_other_type, where all objects are created using the contents of this buffer.
 
uint04 indexOf (const char &element) const
 
uint04 indexOf (const char &element, uint04 start_pos) const
 
uint04 indexOf (const char &element, uint04 start_pos, uint04 search_size) const
 
void insert (const uint04 location, const char *buffer)
 Inserts data into the buffer, assumed to be null terminated.
 
void insert (uint04 location, char &&object)
 Adds an object to a specific location.
 
void insert (uint04 location, const char &object)
 Adds an object to a specific location.
 
void insert (uint04 offset, const Buffer &buffer)
 
void insert (uint04 offset, const char *const buffer, uint04 buffer_size)
 Inserts data into the buffer.
 
bool isEmpty () const
 
bool isSorted () const
 
bool isSortedSet () const
 
decltype(auto) last ()
 
decltype(auto) last () const
 
uint04 lastIndexOf (const char &element) const
 
constexpr BufferAllocator< char, uint04, true > & memoryInterface ()
 
constexpr const BufferAllocator< char, uint04, true > & memoryInterface () const
 
uint04 memSize () const
 
void move (uint04 from, uint04 to)
 
 operator char * ()
 Gets the first location of type* in the array.
 
 operator const char * () const
 Gets the first location of type* in the array.
 
bool operator!= (const Buffer &buffer) const
 
Buffer operator+ (const Buffer &value) const
 
Buffer operator+ (const char &element) const
 
Bufferoperator+= (const Buffer &value)
 
const Bufferoperator+= (const char &element)
 
bool operator< (const Buffer &buffer) const
 
bool operator<= (const Buffer &buffer) const
 
Bufferoperator= (Buffer &&buffer) noexcept
 
Bufferoperator= (const Buffer &buffer)
 
bool operator== (const Buffer &buffer) const
 
bool operator> (const Buffer &buffer) const
 
bool operator>= (const Buffer &buffer) const
 
decltype(auto) operator[] (const int index)
 
decltype(auto) operator[] (const int index) const
 
decltype(auto) operator[] (const uint04 index)
 
decltype(auto) operator[] (const uint04 value) const
 
void primitiveSort ()
 
decltype(auto) ptr ()
 
decltype(auto) ptr () const
 
void removeAllIndex (uint04 start, uint04 end)
 
void removeAllIndices (const t_range_buffer &ranges)
 
void removeAllOrdered (const char &object)
 Removes all instances of the object. Function is slower than removeAllUnordered but order is preserved.
 
void removeAllOrderedFn (const t_functor &functor)
 Removes all items based on the functor. The functor should return true if the item is deleted or false if the item should stay in the array. Function is slower than removeAllUnordered but order is preserved.
 
void removeAllUnordered (const char &object)
 Removes all unordered described by object. This function does not preserve the order of the buffer.
 
void removeAllUnordered (const t_functor &functor)
 Removes all items based on the functor. The functor should return true if the item is deleted or false if the item should stay in the array. Faster function then removeAllOrdered but order is not preserved.
 
bool removeElement (const char &element)
 
void removeIndex (uint04 location)
 
void removeIndexBackSwap (uint04 location)
 
void removeLast ()
 
void replaceAll (const char &var, const char &replacement)
 
void replaceIndexRange (uint04 offset, uint04 replace_size, const Buffer &buffer)
 
void resize (uint04 new_size)
 
void reverse ()
 
void reverse (const uint04 start, const uint04 end)
 
void setAll (const Buffer &buffer, uint04 offset, uint04 other_offset, uint04 size)
 
void setAll (const Buffer &buffer, uint04 offset, uint04 size)
 
void setAll (const t_o_type *src, uint04 offset, uint04 size)
 
void setAllToValue (const t_o_type &fill_element, const uint04 offset=0, uint04 fill_size=Constant< uint04 >::Invalid)
 
void setSize (const uint04 new_size, const char &fill_element)
 
void setSize (uint04 new_size)
 
void setUnique ()
 
void setUniquePresorted ()
 
constexpr uint04 size () const
 
void sort ()
 
uint04 sortAboutValue (uint04 value_index)
 
uint04 sortAboutValue (uint04 value_index, uint04 start, uint04 end)
 
void sortRange (uint04 start, uint04 end)
 
void swapAllElements (const char &element1, const char &element2)
 
void swapElements (const char &element1, const char &element2)
 
void swapIndices (uint04 index_1, uint04 index_2)
 
 ~Buffer ()
 

Static Public Member Functions

static bool AlphaNumericCompare (const String &left, const String &right)
 Compares two strings given their alpha-numeric determined value.
 
static String ConvertToCharString (uint04 number)
 Converts a number into a char string. For example 0 will become 'A' and 27 will become 'AA'.
 
template<class t_type >
static TranslatedString DisplayString (const t_type &value)
 Converts an object into a TranslatedString. To use this function an object must have overwritten StringStream<t_type>::toDisplayString.
 
static constexpr uint08 hash (const char *value)
 constexpr method to hash a value. Also provides the hashing method used throughout the API to hash strings.
 
static bool IsWhiteSpace (char s)
 Checks whether a given character is a whitespace character or not.
 
static String NumberString (fltp08 value, bool add_comma, uint04 min_decimals, uint04 max_decimals, uint04 min_digits, char decimal='.', char comma=',')
 Creates a string from a given number using the provided rules.
 
static constexpr uint04 str_len (const char *value)
 constexpr method to get the length of a null-terminated string at compile time
 
static constexpr uint04 str_len (const wchar *value)
 constexpr method to get the UTF8 length of a null-terminated string at compile time
 
static String ToHex (char value)
 Converts the memory of the given object into a hexidecimal string.
 
template<class t_object , class t_allocator , class t_buff >
static String ToHex (const Buffer< t_object, t_allocator, t_buff > &values)
 Converts a buffer of objects into a hexidecimal string.
 
static String ToHex (const String &values)
 Converts a string of any type of data (assumed to be binary) into a hex representation.
 
template<uint01 t_size, class t_type >
static String ToHex (const Vector< t_size, t_type > &values)
 Converts a vector into a hex representation.
 
template<class t_object >
static std::enable_if< ObjectInfo< t_object >::Integer, String >::type ToHex (t_object value)
 Converts the memory of the given object into a hexidecimal string.
 
static String ToHex (uint01 value)
 Converts the memory of the given object into a hexidecimal string.
 
static String UTF16toUTF8 (const wchar *unicode, uint04 &advance)
 
static wchar UTF8toUTF16 (const char *utf8, uint04 &advance)
 Converts a unicode null terminated string of chars into a UTF16 wchar and increments advance by the ammount of characters consumed to make the UTF16 character.
 
- Static Public Member Functions inherited from Buffer< char, uint04, ObjectAllocator< true >, BufferAllocator< char, uint04, true > >
static constexpr char Type ()
 

Detailed Description

The core String class for the NDEVR API.


This String class:

  • Explicitly uses Unicode (UTF8)
  • Easy functions for converting to anything (getAs<class>())
  • Inherits faster Buffer class
  • Provides a quick way to easily convert classes to and from a string in a modular way.

See StringStream for details on providing a definition that will allow any object to be used as a constructor for String, or convert a String into any object using getAs<...>()

The string container is guaranteed to be null-terminated meaning that c_str() and begin() will both point directly into the data structure.

TranslatedString should be used, when possible, for any data that will be displayed to the user.

Strings can be used in case statements using string.hash[upper/lower]()

switch (string.hashUpper())
{
case String::hash("DEFAULT"): value = CompressionMode::e_default; break;
case String::hash("BEST"): value = CompressionMode::e_best; break;
case String::hash("NONE"): value = CompressionMode::e_none; break;
}
uint08 hashUpper() const
Creates a simple, quick hash of the object. See hash(const char* value) for details of the implementa...
uint08 hash() const
Creates a simple, quick hash of the object. See hash(const char* value) for details of the implementa...
CompressionMode
Logical information about the type of compression implemented or requested.
Definition Compressor.h:16
@ e_best
Definition RibbonLayoutMode.hpp:40

Since the String is null terminated, declaring a String using String(256) will allocate 257 bytes on the heap. Thus for memory management, block sizes should be one smaller.

Constructor & Destructor Documentation

◆ String() [1/9]

String ( )

Constructor used to create an empty String*.

◆ String() [2/9]

String ( const String & string)

Copy Constructor.

◆ String() [3/9]

String ( String && string)
noexcept

Move contructor (No new memory allocation).

◆ String() [4/9]

template<std::size_t N>
String ( const char(&) string[N])
inline

String Constructor for static char arrays.

Parameters
[in]stringThe array of characters making up the string. Should be in Unicode (UTF8)

◆ String() [5/9]

template<std::size_t N>
String ( const wchar(&) string[N])
inline

String Constructor for static wchar arrays of UTF16 data.

Parameters
[in]stringUTF16 array of characters making up the string, will be converted to UTF8.

◆ String() [6/9]

String ( const char * string)
inline

String Constructor for null terminated array of chars.

Parameters
[in]stringThe array of characters making up the string. Should be in Unicode (UTF8) and null terminated.

◆ String() [7/9]

String ( const char *const string,
uint04 size )

String Constructor char arrays when the size is known. Slightly faster than iterating over a null-terminated array.

Parameters
[in]stringThe array of characters making up the string. Should be in Unicode (UTF8)
[in]sizeThe size of the string

◆ String() [8/9]

String ( uint04 size,
const char & value )
inline

String Constructor creates a string of a size and fills it with a character.

Parameters
[in]sizeThe size of the string
[in]valueThe value to set all characters in the string to.

◆ String() [9/9]

template<class t_type >
String ( const t_type & value)
inlineexplicit

String Constructor that creates a string based off an object. To use this function an object must have overwritten StringStream<t_type>::toString.

Parameters
[in]valueThe value to use as a reference to generate a string representation.

Member Function Documentation

◆ addUTF16AsUTF8()

void addUTF16AsUTF8 ( const wchar * unicode)

Converts a unicode null terminated string of UTF16 wchars into UTF8 and appends it to the end of the String.

Parameters
[in]unicodeThe UTF16 null-terminated string of chars to append to this string

◆ addUTF16CharAsUTF8()

bool addUTF16CharAsUTF8 ( const wchar * unicode,
uint04 & advance )

Converts a single unicode character at advance into UTF8 and appends it to the end of the String.

Parameters
[in]unicodeThe UTF16 string of chars to append to this string
[in,out]advancethe location in unicode to append, will be incremented based on number of UT16 characters consumed (1 or 2).

◆ addWChar()

void addWChar ( const wchar & object)

Converts a single unicode character UTF16 character into one or more UTF8 characters and appends them to the end of this String.

Parameters
[in]objectThe UTF16 encoded object to append.

◆ addWhiteSpace()

String & addWhiteSpace ( uint04 desired_string_size,
uint04 desired_right_alignment_location = 0,
char whitespace = ' ' )

Used for formatting, will, if necessary, add white space so that the string becomes a certain length. desired_right_alignment_location Will try and align the string to a location by prepending whitspace. desired_string_size will append space to try and make the string a given size.

Parameters
[in]desired_string_sizeThe size the string should be once whitespace is added to the end.
[in]desired_right_alignment_locationIf the string is smaller than desired_right_alignment_location will add whitespace until the rightmost terminating index is equal to desired_right_alignment_location.
[in]whitespacethe character to use for whitespace.
Returns
A reference to this String.

◆ AlphaNumericCompare()

static bool AlphaNumericCompare ( const String & left,
const String & right )
static

Compares two strings given their alpha-numeric determined value.

Returns
True if left is LESS than right.

◆ append()

String & append ( const String & string)

Appends a string to the back of this string.

Parameters
[in]stringThe string to append.
Returns
A reference to this string.

◆ beginsWith()

bool beginsWith ( const String & s,
bool ignore_case = false ) const

Tests if this String starts with the specified prefix.

Parameters
[in]sthe value to test against the start of this string.
[in]ignore_casewhether or not to check using case sensitivity.
Returns
true if the String begins with this value

◆ c_str()

const char * c_str ( ) const

Used to access the raw memory of this string.

Returns
A pointer to the internal memory of the string which is guaranteed to be null terminated.

◆ ConvertToCharString()

static String ConvertToCharString ( uint04 number)
static

Converts a number into a char string. For example 0 will become 'A' and 27 will become 'AA'.

Parameters
[in]numberThe number to convert to a character representation.

◆ DisplayString()

template<class t_type >
TranslatedString DisplayString ( const t_type & value)
static

Converts an object into a TranslatedString. To use this function an object must have overwritten StringStream<t_type>::toDisplayString.

Returns
The user-friendly string representation of this object.

◆ endsWith()

bool endsWith ( const String & s,
bool ignore_case = false ) const

Tests if this String ends with the specified suffix.

Parameters
[in]sthe value to test against the start of this string.
[in]ignore_casewhether or not to check using case sensitivity.
Returns
true if the String begins with this value

◆ formatAsTitleString()

String & formatAsTitleString ( )

Formats the string to be a title, capitalizing important characters and replacing underscores with spaces.

Returns
A reference to this String.

◆ formatNumberString() [1/3]

String & formatNumberString ( bool add_comma,
uint04 decimals )

For a string representing a number, makes the decimals equal to the the provided value and adds comma seperators if number is large enough.

Warning
Undefined behavior if this string does not represent a single number. Example: String("1000000").formatNumberString(true, 2); will make "1,000,000.00"
Parameters
[in]add_commaAdds comma seperators if number is large enough
[in]decimalsthe set number of decimals the string should have.
Returns
A reference to this String.

◆ formatNumberString() [2/3]

String & formatNumberString ( bool add_comma,
uint04 min_decimals,
uint04 max_decimals,
uint04 min_digits,
char decimal = '.',
char comma = ',' )

Modifies the contents of this string, that represents a given number using the provided rules.

Warning
Undefined behavior if this string does not represent a single number.
Parameters
[in]add_commaAdds comma seperators if number is large enough
[in]min_decimalsThe minimum number of decimals the formatted number should have (will add 0's to end)
[in]max_decimalsThe maximum number of decimals the formatted number should have (will remove more decimals)
[in]min_digitsThe minimum number of digits the formatted number should have (will add 0's to the begining)
[in]decimalThe character to use as the decimal ('.')
[in]commaThe character to use as the comma (',')
Returns
A reference to this String.

◆ formatNumberString() [3/3]

String & formatNumberString ( uint04 decimals)

For a string representing a number, makes the decimals equal to the the provided value Example: String("1000000").formatNumberString(2); will make "1000000.00".

Warning
Undefined behavior if this string does not represent a single number.
Parameters
[in]decimalsthe set number of decimals the string should have.
Returns
A reference to this String.

◆ fromHex()

uint04 fromHex ( ) const

Converts a hex value into an unsigned 4 byte number.

Returns
the hex value of this string or Constant<uint04>::Invalid if this is not a hex string.

◆ getAs()

template<class t_type >
t_type getAs ( ) const
inline

Converts a string into an object. To use this function an object must have overwritten StringStream<t_type>::fromString.

Returns
The object value of this string.

◆ hash() [1/2]

uint08 hash ( ) const

Creates a simple, quick hash of the object. See hash(const char* value) for details of the implementation.

Returns
A hash value for this string.

◆ hash() [2/2]

static constexpr uint08 hash ( const char * value)
inlinestaticconstexpr

constexpr method to hash a value. Also provides the hashing method used throughout the API to hash strings.

Returns
A hash value.
Warning
This is not designed to get the length of the wchar* array, but rather the length of a char* array that represents this array.

◆ hashLower()

uint08 hashLower ( ) const

Creates a simple, quick hash of the object. See hash(const char* value) for details of the implementation.

Returns
A hash value for this string as if where all lowercase.

◆ hashUpper()

uint08 hashUpper ( ) const

Creates a simple, quick hash of the object. See hash(const char* value) for details of the implementation.

Returns
A hash value for this string as if it were all uppercase.

◆ hasSubString() [1/2]

bool hasSubString ( const char * sub_string,
bool ignore_case = false ) const

Tests if this String contains the specified substring.

Parameters
[in]sub_stringthe value to test for containment.
[in]ignore_casewhether or not to check using case sensitivity.
Returns
true if the String contains this value

◆ hasSubString() [2/2]

bool hasSubString ( const String & sub_string,
bool ignore_case = false ) const

Tests if this String contains the specified substring.

Parameters
[in]sub_stringthe value to test for containment.
[in]ignore_casewhether or not to check using case sensitivity.
Returns
true if the String contains this value

◆ indexOf() [1/7]

uint04 indexOf ( const char & sub_string) const
inline

Given a substring specified by the input, returns the first index of that string, if it exists.

Parameters
[in]sub_stringthe value to find in the String
Returns
The first index pointing to the beginning of the substring, if it exists. If it is not found, Constant<uint04>::Invalid is returned.

◆ indexOf() [2/7]

uint04 indexOf ( const char & sub_string,
uint04 start_pos ) const
inline

Given a substring specified by the input, returns the first index of that string, if it exists.

Parameters
[in]sub_stringthe value to find in the String
[in]start_posThe index of where to begin searching for the sub_string.
Returns
The first index pointing to the beginning of the substring, if it exists. If it is not found, Constant<uint04>::Invalid is returned.

◆ indexOf() [3/7]

uint04 indexOf ( const char & sub_string,
uint04 start_pos,
uint04 size ) const
inline

Given a substring specified by the input, returns the first index of that string, if it exists.

Parameters
[in]sub_stringthe value to find in the String
[in]start_posThe index of where to begin searching for the sub_string.
[in]sizeThe max span to continue searching for the sub_string. The sub_string must entirely reside within the span from start_pos to sie to be valid.
Returns
The first index pointing to the beginning of the substring, if it exists. If it is not found, Constant<uint04>::Invalid is returned.

◆ indexOf() [4/7]

uint04 indexOf ( const char * sub_string,
bool ignore_case,
uint04 start_index,
uint04 size ) const

Given a substring specified by the input, returns the first index of that string, if it exists.

Parameters
[in]sub_stringthe value to find in the String
[in]ignore_casewhether or not to check using case sensitivity.
[in]start_indexThe index of where to begin searching for the sub_string.
[in]sizeThe max span to continue searching for the sub_string. The sub_string must entirely reside within the span from start_pos to sie to be valid.
Returns
The first index pointing to the beginning of the substring, if it exists. If it is not found, Constant<uint04>::Invalid is returned.

◆ indexOf() [5/7]

uint04 indexOf ( const char * sub_string,
bool ignore_case = false,
uint04 start_index = 0 ) const

Given a substring specified by the input, returns the first index of that string, if it exists.

Parameters
[in]sub_stringthe value to find in the String
[in]ignore_casewhether or not to check using case sensitivity.
[in]start_indexThe index of where to begin searching for the sub_string.
Returns
The first index pointing to the beginning of the substring, if it exists. If it is not found, Constant<uint04>::Invalid is returned.

◆ indexOf() [6/7]

uint04 indexOf ( const char * sub_string,
char escape_char,
bool ignore_case = false,
uint04 start_index = 0 ) const

Given a substring specified by the input, returns the first index of that string, if it exists.

Parameters
[in]sub_stringthe value to find in the String
[in]escape_charThe char that when encountered, ends the search.
[in]ignore_casewhether or not to check using case sensitivity.
[in]start_indexThe index of where to begin searching for the sub_string.
Returns
The first index pointing to the beginning of the substring, if it exists. If it is not found, Constant<uint04>::Invalid is returned.

◆ indexOf() [7/7]

uint04 indexOf ( const String & sub_string,
bool ignore_case = false,
uint04 start_index = 0 ) const

Given a substring specified by the input, returns the first index of that string, if it exists.

Parameters
[in]sub_stringthe value to find in the String
[in]ignore_casewhether or not to check using case sensitivity.
[in]start_indexThe index of where to begin searching for the sub_string.
Returns
The first index pointing to the beginning of the substring, if it exists. If it is not found, Constant<uint04>::Invalid is returned.

◆ insertNewLines()

String insertNewLines ( uint04 max_line_size) const

Finds key areas to insert new lines such that the rows are at most, the length provided.

Parameters
[in]max_line_sizeThe max size of any row of the resulting string
Returns
A string with the new lines inserted appropriately

◆ isNumeric()

bool isNumeric ( ) const

Checks to see if the string is a numeric string.

Returns
true if the string could be representing a number, false if some non-numeric data is present.

◆ isSameNoCase()

bool isSameNoCase ( const String & s) const

Checks whether two strings match in a case-insensitive way.

Parameters
[in]sThe string to compare against
Returns
True if the strings match in a case insensitive way.

◆ IsWhiteSpace()

static bool IsWhiteSpace ( char s)
static

Checks whether a given character is a whitespace character or not.

Parameters
[in]sthe character to check against.
Returns
true if the character is considered by the software to be whitespace, false if not.

◆ lastIndexOf() [1/2]

uint04 lastIndexOf ( const char * sub_string,
bool ignore_case = false ) const

Given a substring specified by the input, returns the last index of that string, if it exists.

Parameters
[in]sub_stringthe value to find in the String
[in]ignore_casewhether or not to check using case sensitivity.
Returns
The last index of pointing to the beginning of the substring, if it exists. If it does not exist, Constant<uint04>::Invalid is returned.

◆ lastIndexOf() [2/2]

uint04 lastIndexOf ( const char value,
bool ignore_case = false ) const

Given a value specified by the input, returns the last index of that char, if it exists.

Parameters
[in]valuethe value to find in the String
[in]ignore_casewhether or not to check using case sensitivity.
Returns
The last index of pointing to the beginning of the substring, if it exists. If it does not exist, Constant<uint04>::Invalid is returned.

◆ matchesWildcard()

bool matchesWildcard ( const String & pattern) const

Checks whether two strings match allowing '' to be used as a wildcard pattern. For example, String("Hello").matchesWildcard("*ll") would return true.

Parameters
[in]patternThe pattern used to check the string against.
Returns
true if the string matches a given wild card pattern.

◆ NumberString()

static String NumberString ( fltp08 value,
bool add_comma,
uint04 min_decimals,
uint04 max_decimals,
uint04 min_digits,
char decimal = '.',
char comma = ',' )
static

Creates a string from a given number using the provided rules.

Warning
If the value is Invalid, the resulting string will be "NaN".
Parameters
[in]valueThe value to convert to a string.
[in]add_commaAdds comma seperators if number is large enough
[in]min_decimalsThe minimum number of decimals the formatted number should have (will add 0's to end)
[in]max_decimalsThe maximum number of decimals the formatted number should have (will remove more decimals)
[in]min_digitsThe minimum number of digits the formatted number should have (will add 0's to the begining)
[in]decimalThe character to use as the decimal ('.')
[in]commaThe character to use as the comma (',')
Returns
A reference to this String.

◆ operator uint04()

operator uint04 ( ) const
inline

◆ operator uint08()

operator uint08 ( ) const
inline

◆ operator!=() [1/3]

bool operator!= ( const char *const value) const
inline

◆ operator!=() [2/3]

template<std::size_t t_size>
bool operator!= ( const char(&) string[t_size])
inline

◆ operator!=() [3/3]

bool operator!= ( const String & value) const
inline

◆ operator()()

size_t operator() ( ) const
inline

◆ operator<()

bool operator< ( const String & value) const

◆ operator=() [1/2]

String & operator= ( const String & value)
inline

◆ operator=() [2/2]

String & operator= ( String && value)
inlinenoexcept

◆ operator==() [1/3]

bool operator== ( const char *const value) const
inline

◆ operator==() [2/3]

template<std::size_t t_size>
bool operator== ( const char(&) string[t_size])
inline

◆ operator==() [3/3]

bool operator== ( const String & value) const
inline

◆ operator>()

bool operator> ( const String & value) const

◆ predictNextStringIncrement()

String predictNextStringIncrement ( ) const

Looks in the string for key markers that might be an index, and attempts to increment the index. If no index is found a "1" will be inserted to the end of the string.

Returns
A string that represents an incremented index

◆ removeNonAlphaNumeric()

String & removeNonAlphaNumeric ( bool remove_tab = true,
bool remove_space = true,
bool remove_new_line = true,
bool remove_r = true,
bool remove_numbers = false )

Removes any characters that aren't numbers or letters with other options available.

Parameters
[in]remove_tabWhether or not to remove tabs
[in]remove_spaceWhether or not to remove spaces
[in]remove_new_lineWhether or not to remove new lines '\n'
[in]remove_rWhether or not to remove carage return '\r'
[in]remove_numbersWhether or not to remove numbers.
Returns
A reference to this String.

◆ removeNonNumeric()

String & removeNonNumeric ( )

Removes anything that is not a number or decimal ('0'-'9' or .)

Returns
A reference to this String.

◆ replace() [1/2]

String & replace ( const Buffer< String, uint04, ObjectAllocator< false > > & sub_string,
const Buffer< String, uint04, ObjectAllocator< false > > & replace_sub_string,
bool ignore_case = false )

Replaces ALL instances of the given substrings with the provided replacements. This allows safe replacement when the replacement string might contain the same data being replaced.

Parameters
[in]sub_stringThe subsrings to replace
[in]replace_sub_stringThe strings to replace ALL instances of the provided sub_string with.
[in]ignore_casewhether or not to check using case sensitivity checks. This will not affect the replacement value, only which parts to replace.
Returns
A reference to this String.

◆ replace() [2/2]

String & replace ( const String & sub_string,
const String & replace_sub_string,
bool ignore_case = false )

Replaces ALL instances of a given substring with the provided replacement.

Parameters
[in]sub_stringThe subsring to replace
[in]replace_sub_stringThe string to replace ALL instances of the provided sub_string with.
[in]ignore_casewhether or not to check using case sensitivity checks. This will not affect the replacement value, only which parts to replace.
Returns
A reference to this String.

◆ shortenString()

String shortenString ( uint04 size) const

Shortans the string to the max size provided. If string is longer, searches for an ideal place to insert "...".

Parameters
[in]sizeThe max size of the new string.
Returns
The shortened String

◆ splitString() [1/4]

Buffer< String, uint04, ObjectAllocator< false > > splitString ( char delimiter,
bool preserve_empty = true ) const

Given a delimiter, breaks the string into subsections, returning an array of each subsection. If the String is empty, an empty String will be appended to the output if preserve_empty is true.

For example, String("The quick, dog,,jumped").splitString(',', true) would return {"The quick", " dog", "", "jumped"}

Parameters
[in]delimiterThe delimiter to split the string
[in]preserve_emptyIf true, when two delimiters are encountered, an empty string is added to the return Buffer. If false, there will be no added empty strings.
Returns
A Buffer of substrings that were broken apart from this string using the delimiter.

◆ splitString() [2/4]

void splitString ( char delimiter,
Buffer< String, uint04, ObjectAllocator< false > > & strings,
bool preserve_empty = true ) const

Given multiple delimiter, breaks the string into subsections, and APPENDS each substring to the given Buffer. If the String is empty, an empty Buffer will be appended if preserve_empty is true.

Parameters
[in]delimiterThe delimiter to split the string
[in]preserve_emptyIf true, when two delimiters are encountered, an empty string is added to the return Buffer. If false, there will be no added empty strings.
[out]stringswill be appended with substrings that were broken apart from this string using the delimiter.

◆ splitString() [3/4]

Buffer< String, uint04, ObjectAllocator< false > > splitString ( const Buffer< char > & delimiter,
bool preserve_empty = true ) const

Given multiple delimiter, breaks the string into subsections, returning an array of each subsection. If the String is empty, an empty String will be appended to the output if preserve_empty is true. For example, String("The quick, dog,,jumped").splitString({',', ' '}, true) would return {"The", "quick", "dog", "", "jumped"}.

Parameters
[in]delimiterThe delimiter to split the string
[in]preserve_emptyIf true, when two delimiters are encountered, an empty string is added to the return Buffer. If false, there will be no added empty strings.
Returns
A Buffer of substrings that were broken apart from this string using the delimiters.

◆ splitString() [4/4]

void splitString ( const Buffer< char > & delimiter,
Buffer< String, uint04, ObjectAllocator< false > > & strings,
bool preserve_empty = true ) const

Given multiple delimiter, breaks the string into subsections, and APPENDS each substring to the given Buffer. If the String is empty, an empty String will be appended if preserve_empty is true.

Parameters
[in]delimiterThe delimiter to split the string
[in]preserve_emptyIf true, when two delimiters are encountered, an empty string is added to the return Buffer. If false, there will be no added empty strings.
[out]stringswill be appended with substrings that were broken apart from this string using the delimiter.

◆ str_len() [1/2]

static constexpr uint04 str_len ( const char * value)
inlinestaticconstexpr

constexpr method to get the length of a null-terminated string at compile time

Parameters
[in]valueA null terminated string.
Returns
the length of the string.

◆ str_len() [2/2]

static constexpr uint04 str_len ( const wchar * value)
inlinestaticconstexpr

constexpr method to get the UTF8 length of a null-terminated string at compile time

Warning
This is not designed to get the length of the wchar* array, but rather the length of a char* array that represents this array.
Parameters
[in]valueA null-terminated UTF16 wchar string.
Returns
the length of the String object that would be created from this object.

◆ substr() [1/2]

String substr ( uint04 start) const

Creates a substring from a given start position, to the end of the string.

Parameters
[in]startThe index where to start the substring.
Returns
the substring starting at start.

◆ substr() [2/2]

String substr ( uint04 start,
uint04 end ) const

Creates a substring from a given start position, to the given end position, non-inclusive of the end index. If the end index is greater than the size of the string, all data past start is returned.

Parameters
[in]startthe index where to start the substring.
[in]endthe index where to end the substring (non-inclusive).
Returns
the substring starting at start, going until end index or the end of the string.

◆ ToHex() [1/6]

static String ToHex ( char value)
static

Converts the memory of the given object into a hexidecimal string.

Parameters
[in]valueThe value to convert to a hex form.
Returns
A string filled with the hex values representing the given object

◆ ToHex() [2/6]

template<class t_object , class t_allocator , class t_buff >
static String ToHex ( const Buffer< t_object, t_allocator, t_buff > & values)
inlinestatic

Converts a buffer of objects into a hexidecimal string.

Parameters
[in]valuesThe values to convert to a hex form.
Returns
A string filled with the hex values representing the given object

◆ ToHex() [3/6]

static String ToHex ( const String & values)
inlinestatic

Converts a string of any type of data (assumed to be binary) into a hex representation.

Parameters
[in]valuesRaw binary data in the form of a string.
Returns
A string filled with the hex values representing the given object

◆ ToHex() [4/6]

template<uint01 t_size, class t_type >
static String ToHex ( const Vector< t_size, t_type > & values)
inlinestatic

Converts a vector into a hex representation.

Parameters
[in]valuesRaw binary data in the form of a string.
Returns
A string filled with the hex values representing the given object

◆ ToHex() [5/6]

template<class t_object >
static std::enable_if< ObjectInfo< t_object >::Integer, String >::type ToHex ( t_object value)
inlinestatic

Converts the memory of the given object into a hexidecimal string.

Parameters
[in]valueThe value to convert to a hex form.
Returns
A string filled with the hex values representing the given object

◆ ToHex() [6/6]

static String ToHex ( uint01 value)
static

Converts the memory of the given object into a hexidecimal string.

Parameters
[in]valueThe value to convert to a hex form.
Returns
A string filled with the hex values representing the given object

◆ toLower()

String toLower ( ) const

changes all upper case characters into lower case characters.

Returns
A string in all lower case

◆ toUpper()

String toUpper ( ) const

changes all lower case characters into upper case characters.

Returns
A string in all upper case

◆ trimWhiteSpace()

String & trimWhiteSpace ( )

Trims any white space (tabs, spaces, etc) from the beginning and end of the string.

Returns
A reference to this String.

◆ UTF16toUTF8()

static String UTF16toUTF8 ( const wchar * unicode,
uint04 & advance )
static

Converts a single unicode character at advance into UTF8 and and returns it as a String

Parameters
[in]unicodeThe UTF16 string of chars to append to this string
[in,out]advancethe location in unicode to append, will be incremented based on number of UT16 characters consumed (1 or 2).

◆ UTF8toUTF16()

static wchar UTF8toUTF16 ( const char * utf8,
uint04 & advance )
static

Converts a unicode null terminated string of chars into a UTF16 wchar and increments advance by the ammount of characters consumed to make the UTF16 character.

Parameters
[in]utf8the UTF8 value to convert to UTF16.
[in,out]advanceThe advance from the start of utf8 which will be incremented by this function.
Returns
A UTF16 unicode character.

The documentation for this class was generated from the following files: