This class specializes parent class String to allow reduction of the length of the represented string by cutting characters from the front or the end. Such reduction does not affect the character array represented, but only its representation by instances of this type.
In other words, the difference to base class String is, that this type allows increasing the pointer to the character array's start and to decrease its stored length. In all other respects, this class has the same lightweight nature and performance as its base. Furthermore, the flexible template programming mechanics for seamless construction are exposed from the base class and likewise available.
Like base class String, the class cannot, and therefore does not, verify that the underlying buffer is (still) properly allocated and contains valid data. It is up to the user of this class to make sure the buffer stays intact until any referencing object of this type is disposed.
TChar | The character type of this string-type. Alias names for specializations along the different character types are provided in namespace alib with type definitions Substring, NSubstring, WSubstring, XSubstring, ComplementSubstring, and StrangeSubstring. |
Definition at line 38 of file substring.inl.
Public Method Index: | |
TSubstring () | |
Default constructor creating a 6.1 Nulled Strings "nulled" substring. | |
TSubstring (const TString< TChar > &src) | |
TSubstring & | Clear () |
bool | ConsumeBin (std::integral auto &result, TNumberFormat< TChar > *numberFormat=nullptr) |
template<typename TCheck = CHK, lang::Whitespaces TTrimBeforeConsume = lang::Whitespaces::Keep> | |
TChar | ConsumeChar () |
template<lang::Case TSensitivity = lang::Case::Sensitive, lang::Whitespaces TTrimBeforeConsume = lang::Whitespaces::Keep> | |
bool | ConsumeChar (TChar consumable) |
template<typename TCheck = CHK, lang::Whitespaces TTrimBeforeConsume = lang::Whitespaces::Keep> | |
TChar | ConsumeCharFromEnd () |
template<lang::Case TSensitivity = lang::Case::Sensitive, lang::Whitespaces TTrimBeforeConsume = lang::Whitespaces::Keep> | |
bool | ConsumeCharFromEnd (TChar consumable) |
template<typename TCheck = CHK, lang::CurrentData TTargetData = lang::CurrentData::Clear, typename TAllocator> | |
integer | ConsumeChars (integer regionLength, TAString< TChar, TAllocator > &target, integer separatorWidth=0) |
template<typename TCheck = CHK> | |
integer | ConsumeChars (integer regionLength, TString< TChar > &target, integer separatorWidth=0) |
template<typename TCheck = CHK> | |
integer | ConsumeChars (integer regionLength, TSubstring *target=nullptr) |
template<typename TCheck = CHK, lang::CurrentData TTargetData = lang::CurrentData::Clear, typename TAllocator> | |
integer | ConsumeCharsFromEnd (integer regionLength, TAString< TChar, TAllocator > &target, integer separatorWidth=0) |
template<typename TCheck = CHK> | |
integer | ConsumeCharsFromEnd (integer regionLength, TSubstring *target=nullptr) |
bool | ConsumeDec (std::integral auto &result, TNumberFormat< TChar > *numberFormat=nullptr) |
bool | ConsumeDecDigits (std::integral auto &result) |
template<lang::Whitespaces TTrimBeforeConsume = lang::Whitespaces::Keep> | |
TString< TChar > | ConsumeField (TChar startChar, TChar endChar) |
ALIB_DLL bool | ConsumeFloat (double &result, TNumberFormat< TChar > *numberFormat=nullptr) |
bool | ConsumeHex (std::integral auto &result, TNumberFormat< TChar > *numberFormat=nullptr) |
bool | ConsumeInt (std::integral auto &result, TNumberFormat< TChar > *numberFormat=nullptr) |
bool | ConsumeOct (std::integral auto &result, TNumberFormat< TChar > *numberFormat=nullptr) |
template<lang::Case TSensitivity = lang::Case::Ignore, lang::Whitespaces TTrimBeforeConsume = lang::Whitespaces::Keep> | |
integer | ConsumePartOf (const TString< TChar > &consumable, int minChars=1) |
template<lang::Case TSensitivity = lang::Case::Sensitive, lang::Whitespaces TTrimBeforeConsume = lang::Whitespaces::Keep> | |
bool | ConsumeString (const TString< TChar > &consumable) |
template<lang::Case TSensitivity = lang::Case::Sensitive, lang::Whitespaces TTrimBeforeConsume = lang::Whitespaces::Keep> | |
bool | ConsumeStringFromEnd (const TString< TChar > &consumable) |
TString< TChar > | ConsumeToken (TChar separator=',', lang::Inclusion includeSeparator=lang::Inclusion::Include) |
template<typename TCheck = CHK> | |
TSubstring & | Split (integer position, TSubstring &target, integer separatorWidth=0, bool trim=false) |
TSubstring & | Trim (const TCString< TChar > &whiteSpaces=CStringConstantsTraits< TChar >::DefaultWhitespaces()) |
TSubstring & | TrimEnd (const TCString< TChar > &whiteSpaces=CStringConstantsTraits< TChar >::DefaultWhitespaces()) |
TSubstring & | TrimStart (const TCString< TChar > &whiteSpaces=CStringConstantsTraits< TChar >::DefaultWhitespaces()) |
![]() | |
constexpr | TString () noexcept=default |
template<typename T> requires alib::characters::IsImplicitArraySource<T, TChar> | |
constexpr | TString (const T &src) noexcept |
template<typename T> requires alib::characters::IsExplicitArraySource<T, TChar> | |
constexpr | TString (const T &src) noexcept |
constexpr | TString (const TChar *pBuffer, integer pLength) noexcept |
constexpr | TString (const TString &) noexcept=default |
Defaulted copy constructor. | |
TString (const_iterator &start, const_iterator &end) | |
constexpr | TString (lang::IsNullptr auto const &) noexcept |
Constructor accepting nullptr . Constructs a nulled string. | |
template<typename T> requires alib::characters::IsMutableArraySource<T, TChar> | |
constexpr | TString (T &src) noexcept |
template<typename TAllocator> requires alib::lang::IsAllocator<TAllocator> | |
TString (TAllocator &allocator, const TString< TChar > ©) | |
constexpr | TString (TString &&) noexcept=default |
Defaulted move constructor. | |
template<typename T> requires ( alib::characters::IsImplicitArrayCast<T, TChar> && !alib::strings::NoAutoCastTraits< TString<TChar>, characters::Policy::Implicit, std::remove_cv_t<T> >::value ) | |
constexpr | operator T () const |
template<typename T> requires ( alib::characters::IsExplicitArrayCast<T, TChar> && !alib::strings::NoAutoCastTraits< TString<TChar>, characters::Policy::ExplicitOnly, std::remove_cv_t<T> >::value ) | |
constexpr | operator T () const |
constexpr TString & | operator= (const TString &) noexcept=default |
constexpr TString & | operator= (TString &&) noexcept=default |
constexpr const TChar * | Buffer () const |
constexpr integer | Length () const |
integer | WStringLength () const |
constexpr bool | IsNull () const |
constexpr bool | IsNotNull () const |
constexpr bool | IsEmpty () const |
constexpr bool | IsNotEmpty () const |
template<typename TCheck = CHK> | |
TString< TChar > | Substring (integer regionStart, integer regionLength=MAX_LEN) const |
template<typename TCheck = CHK> | |
TChar | CharAt (integer idx) const |
template<typename TCheck = CHK> | |
TChar | CharAtStart () const |
template<typename TCheck = CHK> | |
TChar | CharAtEnd () const |
TChar | operator[] (integer idx) const |
std::size_t | Hashcode () const |
std::size_t | HashcodeIgnoreCase () const |
template<typename TCheck = CHK, lang::Case TSensitivity = lang::Case::Sensitive> | |
bool | Equals (const TString< TChar > &rhs) const |
template<typename TCheck = CHK, lang::Case TSensitivity = lang::Case::Sensitive> | |
int | CompareTo (const TString< TChar > &rhs) const |
template<typename TCheck = CHK, lang::Case TSensitivity = lang::Case::Sensitive> | |
int | CompareTo (const TString &rhs, integer rhsRegionStart, integer rhsRegionLength=MAX_LEN) const |
template<typename TCheck = CHK, lang::Case TSensitivity = lang::Case::Sensitive> | |
int | CompareTo (const TString &rhs, integer rhsRegionStart, integer rhsRegionLength, integer regionStart, integer regionLength=MAX_LEN) const |
template<typename TCheck = CHK, lang::Case TSensitivity = lang::Case::Sensitive> | |
bool | ContainsAt (const TString &needle, integer pos) const |
template<typename TCheck = CHK, lang::Case TSensitivity = lang::Case::Sensitive> | |
bool | StartsWith (const TString &needle) const |
template<typename TCheck = CHK, lang::Case TSensitivity = lang::Case::Sensitive> | |
bool | EndsWith (const TString &needle) const |
template<typename TCheck = CHK> | |
integer | IndexOf (TChar needle, integer startIdx=0) const |
template<typename TCheck = CHK> | |
integer | IndexOf (TChar needle, integer regionStart, integer regionLength) const |
integer | IndexOfOrLength (TChar needle) const |
template<typename TCheck = CHK> | |
integer | IndexOfOrLength (TChar needle, integer startIdx) const |
template<typename TCheck = CHK> | |
integer | LastIndexOf (TChar needle, integer startIndex=MAX_LEN) const |
template<lang::Inclusion TInclusion, typename TCheck = CHK> | |
integer | IndexOfAny (const TString &needles, integer startIdx=0) const |
template<lang::Inclusion TInclusion, typename TCheck = CHK> | |
integer | LastIndexOfAny (const TString &needles, integer startIdx=MAX_LEN) const |
template<typename TCheck = CHK, lang::Case TSensitivity = lang::Case::Sensitive> | |
integer | IndexOf (const TString &needle, integer startIdx=0, integer endIdx=strings::MAX_LEN) const |
template<typename TCheck = CHK> | |
integer | IndexOfFirstDifference (const TString &needle, lang::Case sensitivity=lang::Case::Sensitive, integer startIdx=0) const |
integer | IndexOfSegmentEnd (TChar opener, TChar closer, integer idx) const |
template<typename TCheck = CHK> | |
integer | CountChar (TChar needle, integer startPos=0) const |
template<typename TCheck = CHK> | |
integer | CountChar (TChar needle, TChar omit, integer startPos) const |
template<typename TCheck = CHK, lang::Case TSensitivity = lang::Case::Sensitive> | |
integer | Count (const TString &needle, integer startPos=0) const |
template<typename TCheck = CHK, lang::Case TSensitivity = lang::Case::Sensitive> | |
integer | Count (const TString &needle, const TString &omit, integer startPos=0) const |
ALIB_DLL uint64_t | ParseDecDigits (integer startIdx=0, integer *newIdx=nullptr) const |
ALIB_DLL int64_t | ParseInt (integer startIdx=0, TNumberFormat< TChar > *numberFormat=nullptr, integer *newIdx=nullptr) const |
int64_t | ParseInt (TNumberFormat< TChar > *numberFormat, integer *newIdx=nullptr) const |
int64_t | ParseInt (integer *newIdx) const |
int64_t | ParseInt (integer startIdx, integer *newIdx) const |
ALIB_DLL uint64_t | ParseDec (integer startIdx=0, TNumberFormat< TChar > *numberFormat=nullptr, integer *newIdx=nullptr) const |
uint64_t | ParseDec (TNumberFormat< TChar > *numberFormat, integer *newIdx=nullptr) const |
uint64_t | ParseDec (integer *newIdx) const |
uint64_t | ParseDec (integer startIdx, integer *newIdx) const |
ALIB_DLL uint64_t | ParseBin (integer startIdx=0, TNumberFormat< TChar > *numberFormat=nullptr, integer *newIdx=nullptr) const |
uint64_t | ParseBin (TNumberFormat< TChar > *numberFormat, integer *newIdx=nullptr) const |
uint64_t | ParseBin (integer *newIdx) const |
uint64_t | ParseBin (integer startIdx, integer *newIdx) const |
ALIB_DLL uint64_t | ParseHex (integer startIdx=0, TNumberFormat< TChar > *numberFormat=nullptr, integer *newIdx=nullptr) const |
uint64_t | ParseHex (TNumberFormat< TChar > *numberFormat, integer *newIdx=nullptr) const |
uint64_t | ParseHex (integer *newIdx) const |
uint64_t | ParseHex (integer startIdx, integer *newIdx) const |
ALIB_DLL uint64_t | ParseOct (integer startIdx=0, TNumberFormat< TChar > *numberFormat=nullptr, integer *newIdx=nullptr) const |
uint64_t | ParseOct (TNumberFormat< TChar > *numberFormat, integer *newIdx=nullptr) const |
uint64_t | ParseOct (integer *newIdx) const |
uint64_t | ParseOct (integer startIdx, integer *newIdx) const |
ALIB_DLL double | ParseFloat (integer startIdx=0, TNumberFormat< TChar > *numberFormat=nullptr, integer *newIdx=nullptr) const |
double | ParseFloat (TNumberFormat< TChar > *numberFormat, integer *newIdx=nullptr) const |
double | ParseFloat (integer *newIdx) const |
double | ParseFloat (integer startIdx, integer *newIdx) const |
integer | CopyTo (TChar *dest) const |
template<typename TAllocator> requires alib::lang::IsAllocator<TAllocator> | |
void | Allocate (TAllocator &allocator, const TString< TChar > ©) |
template<typename TAllocator> requires alib::lang::IsAllocator<TAllocator> | |
void | Free (TAllocator &allocator) |
const_iterator | begin () const |
const_iterator | cbegin () const |
const_iterator | end () const |
const_iterator | cend () const |
const_reverse_iterator | rbegin () const |
const_reverse_iterator | rend () const |
const_reverse_iterator | crbegin () const |
const_reverse_iterator | crend () const |
size_type | size () const |
bool | AdjustRegion (integer ®ionStart, integer ®ionLength) const |
Protected Type Index: | |
using | base = TString<TChar> |
The base string-type. | |
Protected Method Index: | |
ALIB_DLL bool | consumeBinImpl (uint64_t &result, TNumberFormat< TChar > *numberFormat) |
ALIB_DLL bool | consumeDecDigitsImpl (uint64_t &result) |
ALIB_DLL bool | consumeDecImpl (uint64_t &result, TNumberFormat< TChar > *numberFormat) |
ALIB_DLL bool | consumeHexImpl (uint64_t &result, TNumberFormat< TChar > *numberFormat) |
ALIB_DLL bool | consumeIntImpl (int64_t &result, TNumberFormat< TChar > *numberFormat) |
ALIB_DLL bool | consumeOctImpl (uint64_t &result, TNumberFormat< TChar > *numberFormat) |
![]() | |
template<lang::Case TSensitivity = lang::Case::Sensitive> | |
ALIB_DLL integer | indexOfString (const TString &needle, integer startIdx, integer endIdx) const |
Additional Inherited Members | |
![]() | |
using | size_type = integer |
The type defining sizes of strings. | |
using | value_type = TChar |
Exposes template parameter TChar to the outer world in a std compatible way. | |
using | const_iterator = TRandomAccessIterator<const TChar> |
using | const_reverse_iterator = std::reverse_iterator<const_iterator> |
![]() | |
const TChar * | buffer |
integer | length |
|
protected |
The base string-type.
Definition at line 42 of file substring.inl.
|
inline |
Default constructor creating a 6.1 Nulled Strings "nulled" substring.
Definition at line 53 of file substring.inl.
|
inline |
Constructor using a string reference.
src | The source string. |
Definition at line 59 of file substring.inl.
|
inline |
Sets this object to zero length.
*this
to allow concatenated calls. Definition at line 65 of file substring.inl.
|
inline |
Consumes an unsigned integer in binary format from the start of this string.
Parameter numberFormat defaults to nullptr
. This denotes static singleton NumberFormat::Computational which is configured to not using (not allowing) grouping characters.
For more information on number conversion, see class NumberFormat.
[out] | result | A reference to the result value. |
numberFormat | The number format to use. Defaults to nullptr . |
true
if a number was found and consumed, false
otherwise. Definition at line 727 of file substring.inl.
|
protected |
Implementation of ConsumeBin (the non-inline part).
[out] | result | A reference to the result value. |
numberFormat | The number format to use. |
true
if a number was found and consumed, false
otherwise. Definition at line 82 of file substring.cpp.
|
inline |
Retrieve and remove the first character from the substring.
TTrimBeforeConsume | Determines if the string should be (left-) trimmed before the consume operation. Defaults to Whitespaces::Keep. |
TCheck | Defaults to CHK, which is the normal invocation mode. If <false> is added to the method name, no parameter check is performed. |
Definition at line 135 of file substring.inl.
|
inline |
Checks if this object starts with the given character consumable. If it does, this character is cut from this object.
TSensitivity | The sensitivity of the comparison. Defaults to Case::Sensitive. |
TTrimBeforeConsume | Determines if the string should be (left-) trimmed before the consume operation. Defaults to Whitespaces::Keep. |
consumable | The consumable character. |
true
, if this object was starting with consumable and consequently the string was cut by one, false
otherwise. Definition at line 167 of file substring.inl.
|
inline |
Retrieve and remove the last character in the substring.
TCheck | Defaults to CHK, which is the normal invocation mode. If <false> is added to the method name, no check whether this string is empty is performed. |
TTrimBeforeConsume | Determines if the string should be (right-) trimmed before the consume operation. Defaults to Whitespaces::Keep. |
Definition at line 220 of file substring.inl.
|
inline |
Checks if this object ends with the given character consumable. If it does, this character is cut from the end of object.
TSensitivity | The sensitivity of the comparison. Defaults to Case::Sensitive. |
TTrimBeforeConsume | Determines if the string should be (left-) trimmed before the consume operation. Defaults to Whitespaces::Keep. |
consumable | The consumable character. |
true
, if this object was starting with consumable and consequently the string was cut by one. Definition at line 195 of file substring.inl.
|
inline |
Cuts the given number of characters from the beginning of the Substring and optionally places the portion that was cut in parameter target.
Parameter regionLength is checked to be between 0 and length. If negative, nothing is cut and target is set empty, respectively left untouched depending on TTargetData.
If regionLength is greater than this object's length, all contents is 'moved' to target.
TCheck | Defaults to CHK, which is the normal invocation mode. If <false> is added to the method name, no parameter check is performed. |
TTargetData | If CurrentData::Keep , AString target is not cleared before the result is written. Defaults to CurrentData::Clear . |
TAllocator | The allocation type of the target string, as prototyped with Allocator. Deduced by the compiler. |
regionLength | The length of the region at the start to delete. |
target | A target AString that receives the portion that is cut from this object. |
separatorWidth | This width is added to what is cut from this string, while target still receives the portion defined by regionLength. Defaults to 0. |
Definition at line 351 of file substring.inl.
|
inline |
Cuts the given number of characters from the beginning of the Substring and optionally places the portion that was cut in parameter target.
Parameter regionLength is checked to be between 0 and length. If negative, nothing is cut and target is set empty, respectively left untouched depending on TTargetData.
If regionLength is greater than this object's length, all contents is 'moved' to target.
TCheck | Defaults to CHK, which is the normal invocation mode. If <false> is added to the method name, no parameter check is performed. |
regionLength | The length of the region at the start to delete. |
target | A target String that receives the portion that is cut from this object. |
separatorWidth | This width is added to what is cut from this string, while target still receives the portion defined by regionLength. Defaults to 0. |
Definition at line 414 of file substring.inl.
|
inline |
Cuts the given number of characters from the beginning of the Substring and optionally places the portion that was cut in parameter target (if provided).
If parameter regionLength is negative, nothing is cut and optional argument target is set empty. If regionLength is equal or greater than this object's length, all contents is 'moved' to target.
TCheck | Defaults to CHK, which is the normal invocation mode. If <false> , parameter regionLength has to be in the range of this object's size. |
regionLength | The length of the region at the start to delete. |
target | An optional target Substring that receives the portion that is cut from this object. Defaults to nullptr. |
Definition at line 254 of file substring.inl.
|
inline |
Cuts the given number of characters from the end of the substring and places the portion that was cut in parameter target.
Parameter regionLength is checked to be between 0 and length. If negative, nothing is cut and target is set empty, respectively left untouched depending on If
regionLength is greater than this object's length, all contents is 'moved' to target.
TCheck | Defaults to CHK, which is the normal invocation mode. If <false> is added to the method name, no parameter check is performed. |
TTargetData | If CurrentData::Keep , the parameter target is not cleared before the result is written. Defaults to CurrentData::Clear . |
TAllocator | The allocator-type of the target. Deduced by the compiler. |
regionLength | The length of the region at the start to delete. |
target | A target AString that receives the portion that is cut from this object. |
separatorWidth | This width is added to what is cut from this string, while target still receives the portion defined by regionLength. Defaults to 0. |
Definition at line 477 of file substring.inl.
|
inline |
Cuts the given number of characters from the end of the Substring and optionally places the portion that was cut in parameter target (if provided).
Parameter regionLength is checked to be between 0 and length. If negative, nothing is cut and target is set empty. If regionLength is greater than this object's length, all contents is 'moved' to target.
TCheck | Defaults to CHK, which is the normal invocation mode. If <false> is added to the method name, no parameter check is performed. |
regionLength | The length of the region at the start to delete. |
target | An optional target Substring that receives the portion that is cut from this object. Defaults to nullptr. |
Definition at line 298 of file substring.inl.
|
inline |
Consumes an unsigned integer in standard decimal format from the start of this AString.
Parameter numberFormat defaults to nullptr
. This denotes static singleton NumberFormat::Computational which is configured to not using (not allowing) grouping characters.
Sign literals '-'
or '+'
are not accepted and parsing will fail. For reading signed integral values, see methods ConsumeInt, for floating point numbers ConsumeFloat.
For more information on number conversion, see class NumberFormat.
[out] | result | A reference to a variable of an integral type which receives the result value. |
numberFormat | The number format to use. Defaults to nullptr . |
true
if a number was found and consumed, false
otherwise. Definition at line 707 of file substring.inl.
|
inline |
Consumes all characters '0'
to '9'
at the start of this object and stores the value they represent in result.
Unlike methods ConsumeInt or ConsumeDec, this method does not consume (respectively accept) sign-, whitespace- or group-characters.
[out] | result | A reference to a variable of an integral type which receives the result value. |
true
if a number was found and consumed, false
otherwise. Definition at line 659 of file substring.inl.
|
protected |
Implementation of ConsumeDecDigits (the non-inline part).
[out] | result | A reference to the result value. |
true
if a number was found and consumed, false
otherwise. Definition at line 37 of file substring.cpp.
|
protected |
Implementation of ConsumeDec (the non-inline part).
[out] | result | A reference to the result value. |
numberFormat | The number format to use. |
true
if a number was found and consumed, false
otherwise. Definition at line 66 of file substring.cpp.
|
inline |
Consumes a field from the beginning of this substring, which is surrounded by given start end end character identifiers. If both are the same, e.g., '"'
, then the first occurrence of the end character is used. If they are not the same, e.g. '<'
and '>'
, then repeated start characters are counted and consumption only ends when a corresponding amount of end characters has been found.
TTrimBeforeConsume | Determines if the string should be (left-) trimmed before the consume operation. Defaults to Whitespaces::Keep. |
startChar | The start character of the field to consume. |
endChar | The end character of the field to consume. |
Definition at line 633 of file substring.inl.
template ALIB_DLL bool alib::strings::TSubstring< TChar >::ConsumeFloat | ( | double & | result, |
TNumberFormat< TChar > * | numberFormat = nullptr ) |
Consumes a floating point number from the start of this string.
on the given numberFormat instance.
Parameter numberFormat defaults to nullptr
. This denotes static singleton NumberFormat::Computational which is configured to 'international' settings (not using the locale) and therefore also not parsing grouping characters.
For more information on parsing options for floating point numbers and number conversion in general, see class NumberFormat.
[out] | result | A reference to the result value. |
numberFormat | The number format to use. Defaults to nullptr . |
true
if a number was found and consumed, false
otherwise. Definition at line 130 of file substring.cpp.
|
inline |
Consumes an unsigned integer in hexadecimal format from the start of this string.
Parameter numberFormat defaults to nullptr
. This denotes static singleton NumberFormat::Computational which is configured to not using (not allowing) grouping characters.
For more information on number conversion, see class NumberFormat.
[out] | result | A reference to a variable of an integral type which receives the result value. |
numberFormat | The number format to use. Defaults to nullptr . |
true
if a number was found and consumed, false
otherwise. Definition at line 749 of file substring.inl.
|
protected |
Implementation of ConsumeHex (the non-inline part).
[out] | result | A reference to the result value. |
numberFormat | The number format to use. |
true
if a number was found and consumed, false
otherwise. Definition at line 98 of file substring.cpp.
|
inline |
Consumes an integral value in decimal, binary, hexadecimal or octal format from the string.
Parameter numberFormat defaults to nullptr
. This denotes static singleton NumberFormat::Computational which is configured to not using (not allowing) grouping characters.
For more information on number conversion, see class NumberFormat.
[out] | result | A reference to a variable of an integral type which receives the result value. |
numberFormat | The number format to use. Defaults to nullptr . |
true
if a number was found and consumed, false
otherwise. Definition at line 682 of file substring.inl.
|
protected |
Implementation of ConsumeInt (the non-inline part).
[out] | result | A reference to the result value. |
numberFormat | The number format to use. |
true
if a number was found and consumed, false
otherwise. Definition at line 50 of file substring.cpp.
|
inline |
Consumes an unsigned integer in octal format from the start of this string.
Parameter numberFormat defaults to nullptr
. This denotes static singleton NumberFormat::Computational which is configured to not use (not allow) grouping characters.
For more information on number conversion, see class NumberFormat.
[out] | result | A reference to a variable of an integral type which receives the result value. |
numberFormat | The number format to use. Defaults to nullptr . |
true
if a number was found and consumed, false
otherwise. Definition at line 771 of file substring.inl.
|
protected |
Implementation of ConsumeOct (the non-inline part).
[out] | result | A reference to the result value. |
numberFormat | The number format to use. |
true
if a number was found and consumed, false
otherwise. Definition at line 114 of file substring.cpp.
|
inline |
Consumes a minimum of minChars of string consumable from the start of this substring. If the minimum characters could not be found, nothing is consumed, otherwise, the method consumes as much as possible.
This method is useful read "tokens" from a string that may be abbreviated. Within ALib this method is for example used with deserialization of enumeration elements.
TSensitivity | The sensitivity of the comparison. Defaults to Case::Ignore. |
TTrimBeforeConsume | Determines if the string should be (left-) trimmed before the first character consume operation. Defaults to Whitespaces::Keep. |
consumable | The consumable string. |
minChars | The minimum amount of characters to consume. If 0 or negative, the length of consumable is chosen. Optional and defaults to 1 . |
Definition at line 603 of file substring.inl.
|
inline |
Checks if this object starts with the given string consumable. If it does, this string is cut from this object.
TSensitivity | The sensitivity of the comparison. Defaults to Case::Sensitive. |
TTrimBeforeConsume | Determines if the string should be (left-) trimmed before the consume operation. Defaults to Whitespaces::Keep. |
consumable | The consumable string. |
true
, if this object was starting with consumable and consequently the string was cut. Definition at line 547 of file substring.inl.
|
inline |
Checks if this object ends with the given string consumable. If it does, this string is cut from the end of object.
TSensitivity | The sensitivity of the comparison. Defaults to Case::Sensitive. |
TTrimBeforeConsume | Determines if the string should be (left-) trimmed before the consume operation. Defaults to Whitespaces::Keep. |
consumable | The consumable string |
true
, if this object was starting with consumable and consequently the string was cut. Definition at line 572 of file substring.inl.
|
inline |
Searches separator and cuts the beginning of this string. What was consumed is returned.
If the separator is not found, all of this string is consumed and returned.
separator | The separator to search. Defaults to ',' . |
includeSeparator | Determines if the separator should be consumed as well. defaults to Include |
Definition at line 516 of file substring.inl.
|
inline |
Splits this substring into two parts. What remains in this object is the region from 0 to position. target receives the rest. If separatorWidth is given, this is subtracted from the front of target.
TCheck | Defaults to CHK, which is the normal invocation mode. If <false> is added to the method name, no parameter check is performed. |
position | The index where this object is split. |
target | The target substring to receive the right part of the string. |
separatorWidth | This does not change what remains in this object, but defines the number of characters that are cut from the front of the target. Defaults to 0. |
trim | If true , both substrings will be trimmed. |
*this
to allow concatenated calls. Definition at line 818 of file substring.inl.
|
inline |
Invokes TrimStart and TrimEnd .
whiteSpaces | The characters used for trimming. Defaults to alib::DEFAULT_WHITESPACES |
*this
to allow concatenated calls. Definition at line 116 of file substring.inl.
|
inline |
Moves the start to the first character not found in given character set whiteSpaces.
whiteSpaces | The characters used for trimming. Defaults to alib::DEFAULT_WHITESPACES |
*this
to allow concatenated calls. Definition at line 98 of file substring.inl.
|
inline |
Moves the start to the first character not found in given character set whiteSpaces.
whiteSpaces | The characters used for trimming. Defaults to alib::DEFAULT_WHITESPACES |
*this
to allow concatenated calls. Definition at line 76 of file substring.inl.