xtd 0.2.0
Loading...
Searching...
No Matches
xtd::basic_string< char_t, traits_t, allocator_t > Class Template Reference
Inheritance diagram for xtd::basic_string< char_t, traits_t, allocator_t >:
xtd::object xtd::icomparable< basic_string< char_t, traits_t, allocator_t > > xtd::iequatable< basic_string< char_t, traits_t, allocator_t > > xtd::collections::generic::ienumerable< char_t > xtd::collections::generic::extensions::enumerable< ienumerable< char_t >, char_t > xtd::collections::generic::extensions::enumerable_iterators< char_t, xtd::collections::generic::ienumerable< char_t > > xtd::collections::generic::ienumerable_abstract xtd::interface xtd::extensions::equality_operators< basic_string< char_t, traits_t, allocator_t >, iequatable< basic_string< char_t, traits_t, allocator_t > > > xtd::interface xtd::extensions::comparison_operators< basic_string< char_t, traits_t, allocator_t >, icomparable< basic_string< char_t, traits_t, allocator_t > > > xtd::interface

Definition

template<typename char_t, typename traits_t, typename allocator_t>
class xtd::basic_string< char_t, traits_t, allocator_t >

Represents text as a sequence of character units.

Namespace
xtd
Library
xtd.core
Remarks
A basic_string is a sequential collection of characters that's used to represent text. A xtd::basic_string object is a sequential collection of char that represent a basic_string. The value of the xtd::basic_string object is the content of the sequential collection of char_t, and unlike std::basic_string<char_t> that value is immutable (that is, it is read-only).
If you want the same mutable basic_string class, you can use xtd::text::basic_string_builder <char_t> class.
xtd::basic_string implements std::basic_string<char> and therefore offers the full (immutable) API of std::basic_string.
Several aliases for common character types are provided:
Type Definition
xtd::string xtd::basic_string <char>
xtd::u16string xtd::basic_string <xtd::char16>
xtd::u32string xtd::basic_string <xtd::char32>
xtd::u8string xtd::basic_string <xtd::char8>
xtd::wstring xtd::basic_string <xtd::wchar>
Namespace
xtd
Library
xtd.core
Remarks
A basic_string is a sequential collection of characters that's used to represent text. A xtd::basic_string object is a sequential collection of char that represent a basic_string. The value of the xtd::basic_string object is the content of the sequential collection of char_t, and unlike std::basic_string<char_t> that value is immutable (that is, it is read-only).
If you want the same mutable basic_string class, you can use xtd::text::basic_string_builder <char_t> class.
xtd::basic_string implements std::basic_string<char> and therefore offers the full (immutable) API of std::string.

Public Member Functions

auto is_empty () const noexcept -> bool
 Name Public Deprecated Methods.
 object ()=default
 Create a new instance of the ultimate base class object.
virtual type_object get_type () const noexcept
 Gets the type of the current instance.
template<typename object_t>
xtd::unique_ptr_object< object_t > memberwise_clone () const
 Creates a shallow copy of the current object.
virtual auto begin () const -> const_iterator
 Returns an iterator to the first element of the enumerable.
virtual auto cbegin () const -> const_iterator
 Returns an iterator to the first element of the enumerable.
virtual auto cend () const -> const_iterator
 Returns an iterator to the element following the last element of the enumerable.
virtual auto end () const -> const_iterator
 Returns an iterator to the element following the last element of the enumerable.
auto aggregate (const std::function< char_t(const char_t &, const char_t &)> &func) const -> char_t
 Applies an accumulator function over a sequence.
auto all (const std::function< bool(const char_t &)> &predicate) const -> bool
 Determines whether all elements of a sequence satisfy a condition.
auto any () const noexcept -> bool
 Determines whether a sequence contains any elements.
auto append (const char_t &element) const noexcept
 Appends a value to the end of the sequence.
auto as_enumerable () const noexcept
 Returns the input typed as xtd::collections::generic::ienumerable <type_t>.
auto average () const noexcept
 Computes the average of a sequence of source_t values.
auto cast () const noexcept
 Casts the elements of an xtd::collections::generic::ienumerable to the specified type.
auto chunk (xtd::size size) const
 Splits the elements of a sequence into chunks of size at most size.
auto concat (const ienumerable< char_t > &second) const noexcept
 Concatenates two sequences.
auto contains (const char_t &value) const noexcept -> bool
 Determines whether a sequence contains a specified element by using the default equality comparer.
auto count () const noexcept -> xtd::size
 Returns the number of elements in current sequence.
auto count_by (const std::function< key_t(const char_t &)> &key_selector) const noexcept
 Returns the count of elements in the current sequence grouped by key.
auto default_if_empty () const noexcept
 Returns the elements of the specified sequence or the type parameter's default value in a singleton collection if the current sequence is empty.
auto distinct () const noexcept
 Returns distinct elements from a sequence by using the default equality comparer to compare values.
auto first_or_default (const std::function< bool(const char_t &)> &predicate, const char_t &default_value) const noexcept -> char_t
 Returns the first element of the sequence that satisfies a condition, or a specified default value if no such element is found.
auto order () const
 Sorts the elements of a sequence in ascending order.
auto order_by (const std::function< char_t(const char_t &)> &key_selector) const
 Sorts the elements of a sequence in ascending order according to a key.
auto order_by_descending (const std::function< key_t(const char_t &)> &key_selector) const
 Sorts the elements of a sequence in descending order according to a key.
auto select (const std::function< result_t(const char_t &)> &selector) const
 Projects each element of a sequence into a new form.
auto to_array () const noexcept -> xtd::array< char_t >
 Creates a xtd::array <type_t> from an xtd::collections::generic::ienumerable <type_t>.
auto to_list () const noexcept -> xtd::collections::generic::list< char_t >
 Creates a xtd::collections::generic::list <type_t> from an xtd::collections::generic::ienumerable <type_t>.
auto where (const std::function< bool(const char_t &)> &predicate) const
 Filters a sequence of values based on a predicate.

Static Public Member Functions

template<typename object_t>
static auto class_name () -> basic_string
 Gets the class name of the object_t.
template<typename object_t>
static auto class_name (const object_t &object) -> basic_string
 Gets the class name of the specified object.
static auto class_name (const std::type_info &info) -> basic_string
 Gets the class name of the specified object.
template<typename object_t>
static auto full_class_name () -> basic_string
 Gets the fully qualified class name of the objec_t, including the namespace of the objec_t.
template<typename object_t>
static auto full_class_name (const object_t &object) -> basic_string
 Gets the fully qualified class name of the specified object, including the namespace of the specified object.
static auto full_class_name (const std::type_info &info) -> basic_string
 Gets the fully qualified class name of the specified object, including the namespace of the specified object.
template<typename object_a_t, typename object_b_t>
static bool equals (const object_a_t &object_a, const object_b_t &object_b) noexcept
 Determines whether the specified object instances are considered equal.
template<typename object_a_t, typename object_b_t>
static bool reference_equals (const object_a_t &object_a, const object_b_t &object_b) noexcept
 Determines whether the specified object instances are the same instance.
static auto to_const_iterator (typename source_collection_t::const_iterator &value, const source_collection_t &source_collection, const target_collection_t &target_collection) noexcept -> typename target_collection_t::const_iterator
 Converts source iterator to target iterator.
static auto to_iterator (typename source_collection_t::const_iterator &value, const source_collection_t &source_collection, const target_collection_t &target_collection) noexcept -> typename target_collection_t::const_iterator
 Converts source iterator to target iterator.

Public Aliases

using base_type
 Represents the basic string base type.
using traits_type
 Represents the basic string traits type.
using value_type
 Represents the basic string value type.
using allocator_type
 Represents the basic string allocator type.
using size_type
 Represents the basic string size type.
using difference_type
 Represents the basic string difference type.
using reference
 Represents the basic string referecne type.
using const_reference
 Represents the basic string const referecne type.
using pointer
 Represents the basic string pointer type.
using const_pointer
 Represents the basic string const pointer type.
using iterator
 Represents the basic string iterator type.
using const_iterator
 Represents the basic string const iterator type.
using reverse_iterator
 Represents the basic string reverse iterator type.
using const_reverse_iterator
 Represents the basic string const reverse iterator type.
using enumerator_type
 Represents the basic string enumerator type.

Public Fields

static const basic_string empty_string
 Represents the empty basic_string.
static constexpr size_type npos
 Represents a value that is not a valid position in a collection.
static constexpr xtd::size bpos
 Represents the index of the first valid element in a collection.
static constexpr xtd::size epos
 Represents the index of the last valid element in a collection.

Public Operators

auto operator[] (xtd::size index) const -> const_reference
 Returns a reference to the character at specified location index.
 operator const base_type & () const noexcept
 Returns a reference to the underlying base type.
auto operator= (const basic_string< char > &str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (const basic_string< xtd::char16 > &str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (const basic_string< xtd::char32 > &str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (const basic_string< xtd::char8 > &str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (const basic_string< xtd::wchar > &str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (basic_string< char > &&str) noexcept -> basic_string &
 Move assignment operator. Replaces the contents with those of other using move semantics (i.e. the data in str is moved from str into this string). str is in a valid but unspecified state afterwards.
auto operator= (basic_string< xtd::char16 > &&str) noexcept -> basic_string &
 Move assignment operator. Replaces the contents with those of other using move semantics (i.e. the data in str is moved from str into this string). str is in a valid but unspecified state afterwards.
auto operator= (basic_string< xtd::char32 > &&str) noexcept -> basic_string &
 Move assignment operator. Replaces the contents with those of other using move semantics (i.e. the data in str is moved from str into this string). str is in a valid but unspecified state afterwards.
auto operator= (basic_string< xtd::char8 > &&str) noexcept -> basic_string &
 Move assignment operator. Replaces the contents with those of other using move semantics (i.e. the data in str is moved from str into this string). str is in a valid but unspecified state afterwards.
auto operator= (basic_string< xtd::wchar > &&str) noexcept -> basic_string &
 Move assignment operator. Replaces the contents with those of other using move semantics (i.e. the data in str is moved from str into this string). str is in a valid but unspecified state afterwards.
auto operator= (const std::basic_string< char > &str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (const std::basic_string< xtd::char16 > &str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (const std::basic_string< xtd::char32 > &str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (const std::basic_string< xtd::char8 > &str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (const std::basic_string< xtd::wchar > &str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (std::basic_string< char > &&str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (std::basic_string< xtd::char16 > &&str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (std::basic_string< xtd::char32 > &&str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (std::basic_string< xtd::char8 > &&str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (std::basic_string< xtd::wchar > &&str) noexcept -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (const char *str) -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (const xtd::char16 *str) -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (const xtd::char32 *str) -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (const xtd::char8 *str) -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (const xtd::wchar *str) -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of str.
auto operator= (char character) -> basic_string &
 Copy assignment operator. Replaces the contents with the specified character.
auto operator= (xtd::char16 character) -> basic_string &
 Copy assignment operator. Replaces the contents with the specified character.
auto operator= (xtd::char32 character) -> basic_string &
 Copy assignment operator. Replaces the contents with the specified character.
auto operator= (xtd::char8 character) -> basic_string &
 Copy assignment operator. Replaces the contents with the specified character.
auto operator= (xtd::wchar character) -> basic_string &
 Copy assignment operator. Replaces the contents with the specified character.
auto operator= (const std::initializer_list< char > &il) -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of the specified initializer list.
auto operator= (const std::initializer_list< xtd::char16 > &il) -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of the specified initializer list.
auto operator= (const std::initializer_list< xtd::char32 > &il) -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of the specified initializer list.
auto operator= (const std::initializer_list< xtd::char8 > &il) -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of the specified initializer list.
auto operator= (const std::initializer_list< xtd::wchar > &il) -> basic_string &
 Copy assignment operator. Replaces the contents with a copy of the contents of the specified initializer list.
auto operator+= (const basic_string< char > &str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const basic_string< xtd::char16 > &str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const basic_string< xtd::char32 > &str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const basic_string< xtd::char8 > &str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const basic_string< xtd::wchar > &str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (basic_string< char > &&str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (basic_string< xtd::char16 > &&str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (basic_string< xtd::char32 > &&str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (basic_string< xtd::char8 > &&str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (basic_string< xtd::wchar > &&str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const std::basic_string< char > &str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const std::basic_string< xtd::char16 > &str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const std::basic_string< xtd::char32 > &str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const std::basic_string< xtd::char8 > &str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const std::basic_string< xtd::wchar > &str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const char *str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const xtd::char16 *str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const xtd::char32 *str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const xtd::char8 *str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (const xtd::wchar *str) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (char ch) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (xtd::char16 ch) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (xtd::char32 ch) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (xtd::char8 ch) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.
auto operator+= (xtd::wchar ch) -> basic_string &
 Addition assignment operator. Appends additional characters to the string.

Public Constructors

 basic_string ()=default
 Initializes a new instance of xtd::basic_string.
 basic_string (basic_string &&)=default
 Initializes a new instance of xtd::basic_string with specified string to move.
 basic_string (std::basic_string< char_t > &&str)
 Initializes a new instance of xtd::basic_string with specified string to move.
 basic_string (const basic_string< char > &str) noexcept
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const basic_string< xtd::char16 > &str) noexcept
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const basic_string< xtd::char32 > &str) noexcept
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const basic_string< xtd::char8 > &str) noexcept
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const basic_string< xtd::wchar > &str) noexcept
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const std::basic_string< char > &str) noexcept
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const std::basic_string< xtd::char16 > &str) noexcept
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const std::basic_string< xtd::char32 > &str) noexcept
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const std::basic_string< xtd::char8 > &str) noexcept
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const std::basic_string< xtd::wchar > &str) noexcept
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (char character, xtd::size count)
 Initializes a new instance of xtd::basic_string with specified count copies of character.
 basic_string (xtd::char16 character, xtd::size count)
 Initializes a new instance of xtd::basic_string with specified count copies of character.
 basic_string (xtd::char32 character, xtd::size count)
 Initializes a new instance of xtd::basic_string with specified count copies of character.
 basic_string (xtd::char8 character, xtd::size count)
 Initializes a new instance of xtd::basic_string with specified count copies of character.
 basic_string (xtd::wchar character, xtd::size count)
 Initializes a new instance of xtd::basic_string with specified count copies of character.
 basic_string (const char *str)
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const xtd::char16 *str)
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const xtd::char32 *str)
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const xtd::char8 *str)
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const xtd::wchar *str)
 Initializes a new instance of xtd::basic_string with specified string to copy.
 basic_string (const char *str, xtd::size count)
 Initializes a new instance of xtd::basic_string with specified substring and count characters.
 basic_string (const xtd::char16 *str, xtd::size count)
 Initializes a new instance of xtd::basic_string with specified substring and count characters.
 basic_string (const xtd::char32 *str, xtd::size count)
 Initializes a new instance of xtd::basic_string with specified substring and count characters.
 basic_string (const xtd::char8 *str, xtd::size count)
 Initializes a new instance of xtd::basic_string with specified substring and count characters.
 basic_string (const xtd::wchar *str, xtd::size count)
 Initializes a new instance of xtd::basic_string with specified substring and count characters.
template<typename input_iterator_t>
 basic_string (input_iterator_t first, input_iterator_t last)
 Initializes a new instance of xtd::basic_string with specified first and last iterators of substring.
 basic_string (const std::basic_string_view< char_t > &str)
 Initializes a new instance of xtd::basic_string with specified std::basic_string_view.
 basic_string (std::initializer_list< char > il)
 Initializes a new instance of xtd::basic_string with specified initializer list.
 basic_string (std::initializer_list< xtd::char16 > il)
 Initializes a new instance of xtd::basic_string with specified initializer list.
 basic_string (std::initializer_list< xtd::char32 > il)
 Initializes a new instance of xtd::basic_string with specified initializer list.
 basic_string (std::initializer_list< xtd::char8 > il)
 Initializes a new instance of xtd::basic_string with specified initializer list.
 basic_string (std::initializer_list< xtd::wchar > il)
 Initializes a new instance of xtd::basic_string with specified initializer list.

Public Properties

auto c_str () const noexcept -> const_pointer
 Returns a pointer to a null-terminated character array with data equivalent to those stored in the string.
auto chars () const noexcept -> const base_type &
 Returns a reference to the underlying base type.
auto chars () noexcept -> base_type &
 Returns a reference to the underlying base type.
virtual auto count () const noexcept -> size_type
 Gets the number of characters in the current xtd::basic_string object.
auto data () const noexcept -> const_pointer
 Returns a pointer to the underlying array serving as character storage. The pointer is such that the range [data(), data() + size()] is valid and the values in it correspond to the values stored in the string.
virtual auto empty () const noexcept -> bool
 Checks whether the container is empty.
virtual auto length () const noexcept -> size_type
 Gets the number of characters in the current xtd::basic_string object.
virtual auto size () const noexcept -> size_type
 Gets the number of characters in the current xtd::basic_string object.

Public Methods

auto compare_to (const object &value) const -> xtd::int32
 Compares this instance with a specified xtd::object and indicates whether this instance precedes, follows, or appears in the same position in the sort order as the specified xtd::object.
auto compare_to (const basic_string &value) const noexcept -> xtd::int32 override
 Compares this instance with a specified xtd::basic_string object and indicates whether this instance precedes, follows, or appears in the same position in the sort order as the specified string.
virtual auto contains (value_type value) const noexcept -> bool
 Returns a value indicating whether a specified char occurs within this basic_string.
virtual auto contains (const basic_string &value) const noexcept -> bool
 Returns a value indicating whether a specified substring occurs within this basic_string.
auto equals (const object &obj) const noexcept -> bool override
 Determines whether this instance and a specified object, which must also be a xtd::basic_string object, have the same value.
auto equals (const basic_string &value) const noexcept -> bool override
 Determines whether this instance and another specified xtd::basic_string object have the same value.
auto equals (const basic_string &value, bool ignore_case) const noexcept -> bool
 Determines whether this instance and another specified xtd::basic_string object have the same value, ignoring or honoring their case.
auto ends_with (value_type value) const noexcept -> bool
 Determines whether the end of this basic_string matches the specified character.
auto ends_with (value_type value, bool ignore_case) const noexcept -> bool
 Determines whether the end of this basic_string matches the specified character, ignoring or honoring their case.
auto ends_with (const basic_string &value) const noexcept -> bool
 Determines whether the end of this basic_string matches the specified basic_string.
auto ends_with (const basic_string &value, bool ignore_case) const noexcept -> bool
 Determines whether the end of this basic_string instance matches the specified basic_string, ignoring or honoring their case.
auto ends_with (const basic_string &value, xtd::string_comparison comparison_type) const noexcept -> bool
 Determines whether the end of this basic_string matches the specified basic_string when compared using the specified comparison option.
virtual auto get_base_type () const noexcept -> const base_type &
 Returns the underlying base type.
auto get_hash_code () const noexcept -> xtd::size override
 Returns the hash code for this basic_string.
auto get_enumerator () const noexcept -> enumerator_type override
 Returns an enumerator that iterates through a collection.
auto index_of (const basic_string &value) const noexcept -> xtd::size
 Reports the index of the first occurrence of the specified basic_string in this basic_string.
auto index_of (const basic_string &value, xtd::size start_index) const -> xtd::size
 Reports the index of the first occurrence of the specified character in this basic_string. The search starts at a specified character position.
auto index_of (const basic_string &value, xtd::size start_index, xtd::size count) const -> xtd::size
 Reports the index of the first occurrence of the specified character in this basic_string. The search starts at a specified character position and examines a specified number of character positions.
auto index_of (value_type value) const noexcept -> xtd::size
 Reports the index of the first occurrence of the specified character in this basic_string.
auto index_of (value_type value, xtd::size start_index) const -> xtd::size
 Reports the index of the first occurrence of the specified character in this basic_string. The search starts at a specified character position.
auto index_of (value_type value, xtd::size start_index, xtd::size count) const -> xtd::size
 Reports the index of the first occurrence of the specified character in this basic_string. The search starts at a specified character position and examines a specified number of character positions.
auto index_of_any (const xtd::array< value_type > &values) const noexcept -> xtd::size
 Reports the index of the first occurrence in this instance of any character in a specified array of characters.
auto index_of_any (const xtd::array< value_type > &values, xtd::size start_index) const -> xtd::size
 Reports the index of the first occurrence in this instance of any character in a specified array of characters. The search starts at a specified character position.
auto index_of_any (const xtd::array< value_type > &values, xtd::size start_index, xtd::size count) const -> xtd::size
 Reports the index of the first occurrence in this instance of any character in a specified array of characters. The search starts at a specified character position.
auto insert (xtd::size start_index, const basic_string &value) const -> basic_string
 Inserts a specified instance of basic_string at a specified index position in this instance.
auto last_index_of (const basic_string &value) const noexcept -> xtd::size
 Reports the index of the last occurrence of the specified basic_string in this basic_string.
auto last_index_of (const basic_string &value, xtd::size start_index) const -> xtd::size
 Reports the index of the last occurrence of the specified character in this basic_string. The search starts at a specified character position.
auto last_index_of (const basic_string &value, xtd::size start_index, xtd::size count) const -> xtd::size
 Reports the index of the last occurrence of the specified character in this basic_string. The search starts at a specified character position and examines a specified number of character positions.
auto last_index_of (value_type value) const noexcept -> xtd::size
 Reports the index of the last occurrence of the specified character in this tring.
auto last_index_of (value_type value, xtd::size start_index) const -> xtd::size
 Reports the index of the last occurrence of the specified character in this basic_string. The search starts at a specified character position.
auto last_index_of (value_type value, xtd::size start_index, xtd::size count) const -> xtd::size
 Reports the index of the last occurrence of the specified character in this basic_string. The search starts at a specified character position and examines a specified number of character positions.
auto last_index_of_any (const xtd::array< value_type > &values) const noexcept -> xtd::size
 Reports the index of the last occurrence in this instance of any character in a specified array of characters.
auto last_index_of_any (const xtd::array< value_type > &values, xtd::size start_index) const -> xtd::size
 Reports the index of the last occurrence in this instance of any character in a specified array of characters. The search starts at a specified character position.
auto last_index_of_any (const xtd::array< value_type > &values, xtd::size start_index, xtd::size count) const -> xtd::size
 Reports the index of the last occurrence in this instance of any character in a specified array of characters. The search starts at a specified character position.
auto pad_left (xtd::size total_width) const noexcept -> basic_string
 Right-aligns the characters in this basic_string, padding with spaces on the left for a specified total length.
auto pad_left (xtd::size total_width, char32 padding_char) const noexcept -> basic_string
 Right-aligns the characters in this basic_string, padding with spaces on the left for a specified total length.
auto pad_right (xtd::size total_width) const noexcept -> basic_string
 Left-aligns the characters in this basic_string, padding with spaces on the right for a specified total length.
auto pad_right (xtd::size total_width, char32 padding_char) const noexcept -> basic_string
 Left-aligns the characters in this basic_string, padding with spaces on the right for a specified total length.
auto quoted () const -> basic_string
 Allows insertion and extraction of quoted strings, such as the ones found in CSV or XML.
auto quoted (value_type delimiter) const -> basic_string
 Allows insertion and extraction of quoted strings, such as the ones found in CSV or XML ith specified delimiter.
auto quoted (value_type delimiter, value_type escape) const -> basic_string
 Allows insertion and extraction of quoted strings, such as the ones found in CSV or XML ith specified delimiter and escape.
auto remove (xtd::size start_index) const -> basic_string
 Deletes all the characters from this basic_string beginning at a specified position and continuing through the last position.
auto remove (xtd::size start_index, xtd::size count) const -> basic_string
 Deletes all the characters from this basic_string beginning at a specified position and continuing through the last position.
auto replace (value_type old_char, value_type new_char) const noexcept -> basic_string
 Replaces all occurrences of a specified char_t in this basic_string with another specified char_t.
auto replace (const basic_string &old_string, const basic_string &new_string) const noexcept -> basic_string
 Replaces all occurrences of a specified basic_string in this basic_string with another specified basic_string.
auto split () const noexcept -> xtd::array< basic_string >
 Splits this basic_string into substrings that are based on the default white-space characters. White-space characters are defined by the c++ standard and return true if they are passed to the xtd::char_object::isspace() or std::iswspace() method.
auto split (value_type separator) const noexcept -> xtd::array< basic_string >
 Splits this basic_string into substrings that are based on the characters in an array.
auto split (value_type separator, xtd::string_split_options options) const noexcept -> xtd::array< basic_string >
 Splits this basic_string into substrings based on the characters in an array. You can specify whether the substrings include empty array elements.
auto split (value_type separator, xtd::size count) const noexcept -> xtd::array< basic_string >
 Splits this basic_string into a maximum number of substrings based on the characters in an array. You also specify the maximum number of substrings to return.
auto split (value_type separator, xtd::size count, xtd::string_split_options options) const noexcept -> xtd::array< basic_string >
 Splits this basic_string into a maximum number of substrings based on the characters in an array.
auto split (const xtd::array< value_type > &separators) const noexcept -> xtd::array< basic_string >
 Splits this basic_string into substrings that are based on the characters in an array.
auto split (const xtd::array< value_type > &separators, xtd::string_split_options options) const noexcept -> xtd::array< basic_string >
 Splits this basic_string into substrings based on the characters in an array. You can specify whether the substrings include empty array elements.
auto split (const xtd::array< value_type > &separators, xtd::size count) const noexcept -> xtd::array< basic_string >
 Splits this basic_string into a maximum number of substrings based on the characters in an array. You also specify the maximum number of substrings to return.
auto split (const xtd::array< value_type > &separators, xtd::size count, xtd::string_split_options options) const noexcept -> xtd::array< basic_string >
 Splits this basic_string into a maximum number of substrings based on the characters in an array.
bool starts_with (value_type value) const noexcept
 Determines whether the beginning of this instance of xtd::basic_string matches a specified xtd::basic_string.
bool starts_with (value_type value, bool ignore_case) const noexcept
 Determines whether the beginning of this instance of xtd::basic_string matches a specified xtd::basic_string, ignoring or honoring their case.
auto starts_with (const basic_string &value) const noexcept -> bool
 Determines whether the beginning of this instance of xtd::basic_string matches a specified xtd::basic_string.
auto starts_with (const basic_string &value, bool ignore_case) const noexcept -> bool
 Determines whether the beginning of this instance of xtd::basic_string matches a specified xtd::basic_string, ignoring or honoring their case.
auto starts_with (const basic_string &value, xtd::string_comparison comparison_type) const noexcept -> bool
 Determines whether the end of this basic_string matches the specified basic_string when compared using the specified comparison option.
auto substring (xtd::size start_index) const -> basic_string
 Retrieves a substring from this instance. The substring starts at a specified character position and has a specified length.
auto substring (xtd::size start_index, xtd::size length) const -> basic_string
 Retrieves a substring from this instance. The substring starts at a specified character position and has a specified length.
auto to_array () const noexcept -> xtd::array< value_type >
 Copies the characters in this instance to a Unicode character array.
auto to_array (xtd::size start_index) const -> xtd::array< value_type >
 Copies the characters in this instance to a Unicode character array starting at specified index.
auto to_array (xtd::size start_index, xtd::size length) const -> xtd::array< value_type >
 Copies the characters in this instance to a Unicode character array starting at specified index with specified length.
auto to_char_array () const noexcept -> xtd::array< value_type >
 Copies the characters in this instance to a Unicode character array.
auto to_char_array (xtd::size start_index, xtd::size length) const -> xtd::array< value_type >
 Copies the characters in this instance to a Unicode character array starting at specified index with specified length.
auto to_lower () const noexcept -> basic_string
 Returns a copy of the current xtd::basic_string converted to lowercase.
auto to_string () const noexcept -> basic_string< char > override
 Converts the value of this instance to a xtd::basic_string <char>.
auto to_title_case () const noexcept -> basic_string
 Converts the current basic_string to title case (except for words that are entirely in uppercase, which are considered to be acronyms).
auto to_u16string () const noexcept -> basic_string< xtd::char16 >
 Converts the value of this instance to a xtd::basic_string <xtd::char16>.
auto to_u32string () const noexcept -> basic_string< xtd::char32 >
 Converts the value of this instance to a xtd::basic_string <xtd::char32>.
auto to_u8string () const noexcept -> basic_string< xtd::char8 >
 Converts the value of this instance to a xtd::basic_string <xtd::char8>.
auto to_upper () const noexcept -> basic_string
 Returns a copy of the current xtd::basic_string converted to uppercase.
auto to_wstring () const noexcept -> basic_string< xtd::wchar >
 Converts the value of this instance to a xtd::basic_string <xtd::wchar>.
auto trim () const noexcept -> basic_string
 Removes all leading and trailing occurrences of white-space characters from the specified xtd::basic_string.
auto trim (value_type trim_char) const noexcept -> basic_string
 Removes all leading and trailing occurrences of a character specified from the specified xtd::basic_string .
auto trim (const xtd::array< value_type > &trim_chars) const noexcept -> basic_string
 Removes all leading and trailing occurrences of a set of characters specified in an array from the specified xtd::basic_string.
auto trim_end () const noexcept -> basic_string
 Removes all trailing occurrences of white-space characters from the specified xtd::basic_string.
auto trim_end (value_type trim_char) const noexcept -> basic_string
 Removes all trailing occurrences of a character specified from the specified xtd::basic_string .
auto trim_end (const xtd::array< value_type > &trim_chars) const noexcept -> basic_string
 Removes all trailing occurrences of a set of characters specified in an array from the specified xtd::basic_string.
auto trim_start () const noexcept -> basic_string
 Removes all leading occurrences of white-space characters from the specified xtd::basic_string.
auto trim_start (value_type trim_char) const noexcept -> basic_string
 Removes all leading occurrences of a character specified from the specified xtd::basic_string .
auto trim_start (const xtd::array< value_type > &trim_chars) const noexcept -> basic_string
 Removes all leading occurrences of a set of characters specified in an array from the specified xtd::basic_string.

Public Static Methods

static auto compare (const basic_string &str_a, const basic_string &str_b) noexcept -> xtd::int32
 Compares two specified basic_string objects and returns an integer that indicates their relative position in the sort order.
static auto compare (const basic_string &str_a, const basic_string &str_b, bool ignore_case) noexcept -> xtd::int32
 Compares two specified basic_string objects, ignoring or honoring their case, and returns an integer that indicates their relative position in the sort order.
static auto compare (const basic_string &str_a, const basic_string &str_b, xtd::string_comparison comparison_type) noexcept -> xtd::int32
 Compares two specified basic_string objects using the specified rules, and returns an integer that indicates their relative position in the sort order.
static auto compare (const basic_string &str_a, xtd::size index_a, const basic_string &str_b, xtd::size index_b, xtd::size length) -> xtd::int32
 Compares substrings of two specified basic_string objects and returns an integer that indicates their relative position in the sort order.
static auto compare (const basic_string &str_a, xtd::size index_a, const basic_string &str_b, xtd::size index_b, xtd::size length, bool ignore_case) -> xtd::int32
 Compares substrings of two specified basic_string objects, ignoring or honoring their case, and returns an integer that indicates their relative position in the sort order.
static auto compare (const basic_string &str_a, xtd::size index_a, const basic_string &str_b, xtd::size index_b, xtd::size length, xtd::string_comparison comparison_type) -> xtd::int32
 Compares substrings of two specified basic_string objects using the specified rules, and returns an integer that indicates their relative position in the sort order.
static auto concat (const basic_string &str_a, const basic_string &str_b, const basic_string &str_c, const basic_string &str_d) noexcept -> basic_string
 Concatenates four specified instances of basic_string.
template<typename object_a_t, typename object_b_t, typename object_c_t, typename object_d_t>
static auto concat (object_a_t obj_a, object_b_t obj_b, object_c_t obj_c, object_d_t obj_d) noexcept -> basic_string
 Concatenates four specified instances of object.
static auto concat (const basic_string &str_a, const basic_string &str_b, const basic_string &str_c) noexcept -> basic_string
 Concatenates three specified instances of basic_string.
template<typename object_a_t, typename object_b_t, typename object_c_t>
static auto concat (object_a_t obj_a, object_b_t obj_b, object_c_t obj_c) noexcept -> basic_string
 Concatenates three specified instances of object.
static auto concat (const basic_string &str_a, const basic_string &str_b) noexcept -> basic_string
 Concatenates two specified instances of basic_string.
template<typename object_a_t, typename object_b_t>
static auto concat (object_a_t obj_a, object_b_t obj_b) noexcept -> basic_string
 Concatenates two specified instances of object.
static auto concat (const xtd::array< basic_string > &values) noexcept -> basic_string
 Concatenates the elements of a specified basic_string array.
template<typename object_t>
static auto concat (const xtd::array< object_t > &args) noexcept -> basic_string
 Concatenates the basic_string representations of the elements in a specified object array.
template<typename value_t>
static auto concat (value_t value) noexcept -> basic_string
 Creates the basic_string representation of a specified object.
static auto demangle (const basic_string &name) -> basic_string
 Gets demangled basic_string of name,.
static auto equals (const basic_string &a, const basic_string &b) noexcept -> bool
 Determines whether two specified xtd::basic_string objects have the same value.
template<typename char_a_t, typename char_b_t>
static auto equals (const char_a_t *a, const char_b_t *b) noexcept -> bool
 Determines whether two specified xtd::basic_string objects have the same value.
static auto equals (const basic_string &a, const basic_string &b, bool ignore_case) noexcept -> bool
 Determines whether two specified xtd::basic_string objects have the same value, ignoring or honoring their case.
template<typename char_a_t, typename char_b_t>
static auto equals (const char_a_t *a, const char_b_t *b, bool ignore_case) noexcept -> bool
 Determines whether two specified xtd::basic_string objects have the same value, ignoring or honoring their case.
template<typename ... args_t>
static auto format (const basic_string< char > &fmt, args_t &&... args) -> basic_string
 Writes the text representation of the specified arguments list, to string using the specified format information.
template<typename ... args_t>
static auto format (const std::locale &loc, const basic_string< char > &fmt, args_t &&... args) -> basic_string
 Writes the text representation of the specified arguments list, to string using the specified format information.
static auto is_empty (const xtd::basic_string< value_type, traits_type, allocator_type > &string) noexcept -> bool
 Indicates whether the specifeid basic_string is an empty basic_string ("").
template<typename collection_t>
static auto join (const basic_string &separator, const collection_t &values) noexcept -> basic_string
 Concatenates a specified separator basic_string between each element of a specified object array, yielding a single concatenated basic_string.
template<typename collection_t>
static auto join (const basic_string &separator, const collection_t &values, xtd::size index) -> basic_string
 Concatenates a specified separator basic_string between each element of a specified object array, yielding a single concatenated basic_string.
template<typename collection_t>
static auto join (const basic_string &separator, const collection_t &values, xtd::size index, xtd::size count) -> basic_string
 Concatenates a specified separator basic_string between each element of a specified Object array, yielding a single concatenated basic_string.
template<typename value_t>
static auto parse (const basic_string &str) -> value_t
 Converts a basic_string into a value_t type.
template<typename ... args_t>
static auto sprintf (const basic_string &fmt, args_t &&... args) noexcept -> basic_string
 Writes the text representation of the specified arguments list, to basic_string using the specified format information.
template<typename value_t>
static auto try_parse (const basic_string &str, value_t &value) noexcept -> bool
 Try to convert a basic_string into a value_t type.

Additional Inherited Members

using value_type
 Represents the xtd::collections::generic::ienumerable value type.
using iterator
 Represents the iterator of xtd::collections::generic::ienumerable value type.
using const_iterator
 Represents the const iterator of xtd::collections::generic::ienumerable value type.
using iterator
 Represents the iterator of enumerable value type.
using const_iterator
 Represents the const iterator of enumerable value type.
using enumerable_type
 Represents the ienumerable enumerable type.
using source_type
 Represents the ienumerable source type.
using ienumerable
 Represents the ienumerable value type.
using list
 Represents the list value type.

Member Typedef Documentation

◆ base_type

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::base_type

Represents the basic string base type.

Remarks
Is equal to std::basic_string<char_t, traits_t, allocator_t>.

◆ traits_type

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::traits_type

Represents the basic string traits type.

◆ value_type

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::value_type

Represents the basic string value type.

◆ allocator_type

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::allocator_type

Represents the basic string allocator type.

◆ size_type

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::size_type

Represents the basic string size type.

◆ difference_type

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::difference_type

Represents the basic string difference type.

◆ reference

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::reference

Represents the basic string referecne type.

◆ const_reference

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::const_reference

Represents the basic string const referecne type.

◆ pointer

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::pointer

Represents the basic string pointer type.

◆ const_pointer

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::const_pointer

Represents the basic string const pointer type.

◆ iterator

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::iterator

Represents the basic string iterator type.

Todo
replace xtd::ienumerable::iterator

◆ const_iterator

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::const_iterator

Represents the basic string const iterator type.

Todo
replace xtd::ienumerable::const_iterator

◆ reverse_iterator

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::reverse_iterator

Represents the basic string reverse iterator type.

◆ const_reverse_iterator

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::const_reverse_iterator

Represents the basic string const reverse iterator type.

◆ enumerator_type

template<typename char_t, typename traits_t, typename allocator_t>
using xtd::basic_string< char_t, traits_t, allocator_t >::enumerator_type

Represents the basic string enumerator type.

Constructor & Destructor Documentation

◆ basic_string() [1/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( )
default

Initializes a new instance of xtd::basic_string.

◆ basic_string() [2/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( basic_string< char_t, traits_t, allocator_t > && )
default

Initializes a new instance of xtd::basic_string with specified string to move.

Parameters
strThe basic_string to move.

◆ basic_string() [3/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( std::basic_string< char_t > && str)
inline

Initializes a new instance of xtd::basic_string with specified string to move.

Parameters
strThe basic_string to move.

◆ basic_string() [4/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const basic_string< char > & str)
inlinenoexcept

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [5/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const basic_string< xtd::char16 > & str)
inlinenoexcept

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [6/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const basic_string< xtd::char32 > & str)
inlinenoexcept

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [7/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const basic_string< xtd::char8 > & str)
inlinenoexcept

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [8/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const basic_string< xtd::wchar > & str)
inlinenoexcept

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [9/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const std::basic_string< char > & str)
inlinenoexcept

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [10/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const std::basic_string< xtd::char16 > & str)
inlinenoexcept

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [11/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const std::basic_string< xtd::char32 > & str)
inlinenoexcept

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [12/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const std::basic_string< xtd::char8 > & str)
inlinenoexcept

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [13/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const std::basic_string< xtd::wchar > & str)
inlinenoexcept

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [14/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( char character,
xtd::size count )
inline

Initializes a new instance of xtd::basic_string with specified count copies of character.

Parameters
characterThe character copied.
countThe number of copies of character.

◆ basic_string() [15/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( xtd::char16 character,
xtd::size count )
inline

Initializes a new instance of xtd::basic_string with specified count copies of character.

Parameters
characterThe character copied.
countThe number of copies of character.

◆ basic_string() [16/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( xtd::char32 character,
xtd::size count )
inline

Initializes a new instance of xtd::basic_string with specified count copies of character.

Parameters
characterThe character copied.
countThe number of copies of character.

◆ basic_string() [17/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( xtd::char8 character,
xtd::size count )
inline

Initializes a new instance of xtd::basic_string with specified count copies of character.

Parameters
characterThe character copied.
countThe number of copies of character.

◆ basic_string() [18/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( xtd::wchar character,
xtd::size count )
inline

Initializes a new instance of xtd::basic_string with specified count copies of character.

Parameters
characterThe character copied.
countThe number of copies of character.

◆ basic_string() [19/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const char * str)
inline

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [20/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const xtd::char16 * str)
inline

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [21/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const xtd::char32 * str)
inline

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [22/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const xtd::char8 * str)
inline

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [23/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const xtd::wchar * str)
inline

Initializes a new instance of xtd::basic_string with specified string to copy.

Parameters
strThe string to copy.

◆ basic_string() [24/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const char * str,
xtd::size count )
inline

Initializes a new instance of xtd::basic_string with specified substring and count characters.

Parameters
countThe number of substring characters to copy.

◆ basic_string() [25/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const xtd::char16 * str,
xtd::size count )
inline

Initializes a new instance of xtd::basic_string with specified substring and count characters.

Parameters
countThe number of substring characters to copy.

◆ basic_string() [26/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const xtd::char32 * str,
xtd::size count )
inline

Initializes a new instance of xtd::basic_string with specified substring and count characters.

Parameters
countThe number of substring characters to copy.

◆ basic_string() [27/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const xtd::char8 * str,
xtd::size count )
inline

Initializes a new instance of xtd::basic_string with specified substring and count characters.

Parameters
countThe number of substring characters to copy.

◆ basic_string() [28/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const xtd::wchar * str,
xtd::size count )
inline

Initializes a new instance of xtd::basic_string with specified substring and count characters.

Parameters
countThe number of substring characters to copy.

◆ basic_string() [29/35]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename input_iterator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( input_iterator_t first,
input_iterator_t last )
inline

Initializes a new instance of xtd::basic_string with specified first and last iterators of substring.

Parameters
firstThe first iterator of substring.
lastThe first iterator of substring.

◆ basic_string() [30/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( const std::basic_string_view< char_t > & str)
inline

Initializes a new instance of xtd::basic_string with specified std::basic_string_view.

Parameters
strThe std::basic_string_view string.

◆ basic_string() [31/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( std::initializer_list< char > il)
inline

Initializes a new instance of xtd::basic_string with specified initializer list.

Parameters
ilThe initializer list to fill.

◆ basic_string() [32/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( std::initializer_list< xtd::char16 > il)
inline

Initializes a new instance of xtd::basic_string with specified initializer list.

Parameters
ilThe initializer list to fill.

◆ basic_string() [33/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( std::initializer_list< xtd::char32 > il)
inline

Initializes a new instance of xtd::basic_string with specified initializer list.

Parameters
ilThe initializer list to fill.

◆ basic_string() [34/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( std::initializer_list< xtd::char8 > il)
inline

Initializes a new instance of xtd::basic_string with specified initializer list.

Parameters
ilThe initializer list to fill.

◆ basic_string() [35/35]

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::basic_string ( std::initializer_list< xtd::wchar > il)
inline

Initializes a new instance of xtd::basic_string with specified initializer list.

Parameters
ilThe initializer list to fill.

Member Function Documentation

◆ c_str()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::c_str ( ) const -> const_pointer
inlinenodiscardnoexcept

Returns a pointer to a null-terminated character array with data equivalent to those stored in the string.

Returns
Pointer to the underlying character storage.
Remarks
The pointer is such that the range [c_str(), c_str() + size()] is valid and the values in it correspond to the values stored in the string with an additional null character after the last position.
The pointer obtained from c_str() may be invalidated by:
Writing to the character array accessed through c_str() is undefined behavior.
c_str() and data() perform the same function.

◆ chars() [1/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::chars ( ) const -> const base_type &
inlinenodiscardnoexcept

Returns a reference to the underlying base type.

Returns
Reference to the underlying base type.

◆ chars() [2/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::chars ( ) -> base_type &
inlinenodiscardnoexcept

Returns a reference to the underlying base type.

Returns
Reference to the underlying base type.

◆ count()

template<typename char_t, typename traits_t, typename allocator_t>
virtual auto xtd::basic_string< char_t, traits_t, allocator_t >::count ( ) const -> size_type
inlinenodiscardvirtualnoexcept

Gets the number of characters in the current xtd::basic_string object.

Returns
The number of characters in the current string.
Remarks
The xtd::basic_string::length property returns the number of xtd::basic_string::value_type objects in this instance, not the number of Unicode characters. The reason is that a Unicode character might be represented by more than one xtd::basic_string::value_type.

◆ data()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::data ( ) const -> const_pointer
inlinenodiscardnoexcept

Returns a pointer to the underlying array serving as character storage. The pointer is such that the range [data(), data() + size()] is valid and the values in it correspond to the values stored in the string.

Returns
A pointer to the underlying character storage.
Remarks
The pointer obtained from data() may be invalidated by:
  • Passing a non-const reference to the string to any standard library function, or
  • Calling non-const member functions on the string, excluding operator[](), at(), front(), back(), begin(), end(), rbegin(), rend().
    1. Modifying the character array accessed through the const overload of data has undefined behavior.
    2. Modifying the past-the-end null terminator stored at data() + size() to any value other than char_t() has undefined behavior.

◆ empty()

template<typename char_t, typename traits_t, typename allocator_t>
virtual auto xtd::basic_string< char_t, traits_t, allocator_t >::empty ( ) const -> bool
inlinenodiscardvirtualnoexcept

Checks whether the container is empty.

Returns
true if container is empty; otherwise false.

◆ length()

template<typename char_t, typename traits_t, typename allocator_t>
virtual auto xtd::basic_string< char_t, traits_t, allocator_t >::length ( ) const -> size_type
inlinenodiscardvirtualnoexcept

Gets the number of characters in the current xtd::basic_string object.

Returns
The number of characters in the current string.
Remarks
The xtd::basic_string::length property returns the number of xtd::basic_string::value_type objects in this instance, not the number of Unicode characters. The reason is that a Unicode character might be represented by more than one xtd::basic_string::value_type.

◆ size()

template<typename char_t, typename traits_t, typename allocator_t>
virtual auto xtd::basic_string< char_t, traits_t, allocator_t >::size ( ) const -> size_type
inlinenodiscardvirtualnoexcept

Gets the number of characters in the current xtd::basic_string object.

Returns
The number of characters in the current string.
Remarks
The xtd::basic_string::length property returns the number of xtd::basic_string::value_type objects in this instance, not the number of Unicode characters. The reason is that a Unicode character might be represented by more than one xtd::basic_string::value_type.

◆ compare_to() [1/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::compare_to ( const object & value) const -> xtd::int32
inlinenodiscard

Compares this instance with a specified xtd::object and indicates whether this instance precedes, follows, or appears in the same position in the sort order as the specified xtd::object.

Parameters
valueAn object that evaluates to a xtd::basic_string.
Returns
A 32-bit signed integer that indicates whether this instance precedes, follows, or appears in the same position in the sort order as the value parameter.
Value Condition
Less than zero This instance precedes value.
Zero This instance has the same position in the sort order as value.
Greater than zero This instance follows value.
Exceptions
xtd::argument_exception`value` is not a xtd::basic_string.

◆ compare_to() [2/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::compare_to ( const basic_string< char_t, traits_t, allocator_t > & value) const -> xtd::int32
inlinenodiscardoverridevirtualnoexcept

Compares this instance with a specified xtd::basic_string object and indicates whether this instance precedes, follows, or appears in the same position in the sort order as the specified string.

Parameters
valueThe string to compare with this instance.
Returns
A 32-bit signed integer that indicates whether this instance precedes, follows, or appears in the same position in the sort order as the value parameter.
Value Condition
Less than zero This instance precedes value.
Zero This instance has the same position in the sort order as value.
Greater than zero This instance follows value.

Implements xtd::icomparable< basic_string< char_t, traits_t, allocator_t > >.

◆ contains() [1/2]

template<typename char_t, typename traits_t, typename allocator_t>
virtual auto xtd::basic_string< char_t, traits_t, allocator_t >::contains ( value_type value) const -> bool
inlinenodiscardvirtualnoexcept

Returns a value indicating whether a specified char occurs within this basic_string.

Parameters
valueThe char to seek.
Returns
true if the value parameter occurs within this basic_string; otherwise, false.

◆ contains() [2/2]

template<typename char_t, typename traits_t, typename allocator_t>
virtual auto xtd::basic_string< char_t, traits_t, allocator_t >::contains ( const basic_string< char_t, traits_t, allocator_t > & value) const -> bool
inlinenodiscardvirtualnoexcept

Returns a value indicating whether a specified substring occurs within this basic_string.

Parameters
valueThe basic_string to seek.
Returns
true if the value parameter occurs within this basic_string, or if value is the empty basic_string (""); otherwise, false.

◆ equals() [1/7]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::equals ( const object & obj) const -> bool
inlinenodiscardoverridevirtualnoexcept

Determines whether this instance and a specified object, which must also be a xtd::basic_string object, have the same value.

Parameters
objThe basic_string to compare to this instance.
Returns
true if obj is a xtd::basic_string and its value is the same as this instance; otherwise, false.

Reimplemented from xtd::object.

◆ equals() [2/7]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::equals ( const basic_string< char_t, traits_t, allocator_t > & value) const -> bool
inlinenodiscardoverridevirtualnoexcept

Determines whether this instance and another specified xtd::basic_string object have the same value.

Parameters
valueThe basic_string to compare to this instance.
Returns
true if the value of the value parameter is the same as the value of this instance; otherwise, false.
Remarks
This method performs an ordinal (case-sensitive) comparison.

Implements xtd::iequatable< basic_string< char_t, traits_t, allocator_t > >.

◆ equals() [3/7]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::equals ( const basic_string< char_t, traits_t, allocator_t > & value,
bool ignore_case ) const -> bool
inlinenodiscardnoexcept

Determines whether this instance and another specified xtd::basic_string object have the same value, ignoring or honoring their case.

Parameters
valueThe basic_string to compare to this instance.
ignore_casetrue to ignore case when comparing this instance and value; otherwise, false
Returns
true if the value of the value parameter is the same as the value of this instance; otherwise, false.
Remarks
This method performs an ordinal comparison.

◆ ends_with() [1/5]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::ends_with ( value_type value) const -> bool
inlinenodiscardnoexcept

Determines whether the end of this basic_string matches the specified character.

Parameters
valueThe char_t to compare to the substring at the end of this instance.
Returns
true if value matches the end of this instance; otherwise, false.

◆ ends_with() [2/5]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::ends_with ( value_type value,
bool ignore_case ) const -> bool
inlinenodiscardnoexcept

Determines whether the end of this basic_string matches the specified character, ignoring or honoring their case.

Parameters
valueThe char_t to compare to the substring at the end of this instance.
ignore_casetrue to ignore case during the comparison; otherwise, false.
Returns
true if value matches the end of this instance; otherwise, false.

◆ ends_with() [3/5]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::ends_with ( const basic_string< char_t, traits_t, allocator_t > & value) const -> bool
inlinenodiscardnoexcept

Determines whether the end of this basic_string matches the specified basic_string.

Parameters
valueThe basic_string to compare to the substring at the end of this instance.
Returns
true if value matches the end of this instance; otherwise, false.

◆ ends_with() [4/5]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::ends_with ( const basic_string< char_t, traits_t, allocator_t > & value,
bool ignore_case ) const -> bool
inlinenodiscardnoexcept

Determines whether the end of this basic_string instance matches the specified basic_string, ignoring or honoring their case.

Parameters
valueThe string to compare to the substring at the end of this instance.
ignore_casetrue to ignore case during the comparison; otherwise, false.
Returns
bool true if value matches the end of the specified basic_string; otherwise, false.

◆ ends_with() [5/5]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::ends_with ( const basic_string< char_t, traits_t, allocator_t > & value,
xtd::string_comparison comparison_type ) const -> bool
inlinenodiscardnoexcept

Determines whether the end of this basic_string matches the specified basic_string when compared using the specified comparison option.

Parameters
valueThe string to compare to the substring at the end of this instance.
comparison_typeOne of the enumeration values that determines how this basic_string and value are compared.
Returns
bool true if value matches the end of the specified basic_string; otherwise, false.

◆ get_base_type()

template<typename char_t, typename traits_t, typename allocator_t>
virtual auto xtd::basic_string< char_t, traits_t, allocator_t >::get_base_type ( ) const -> const base_type &
inlinenodiscardvirtualnoexcept

Returns the underlying base type.

Returns
The underlying base type.

◆ get_hash_code()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::get_hash_code ( ) const -> xtd::size
inlinenodiscardoverridevirtualnoexcept

Returns the hash code for this basic_string.

Returns
A hash code.

Reimplemented from xtd::object.

◆ get_enumerator()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::get_enumerator ( ) const -> enumerator_type
inlinenodiscardoverridevirtualnoexcept

Returns an enumerator that iterates through a collection.

Returns
An xtd::collections::generic::enumerator object that can be used to iterate through the collection.

Implements xtd::collections::generic::ienumerable< char_t >.

◆ index_of() [1/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::index_of ( const basic_string< char_t, traits_t, allocator_t > & value) const -> xtd::size
inlinenodiscardnoexcept

Reports the index of the first occurrence of the specified basic_string in this basic_string.

Parameters
valueAn unicode character to seek
Returns
The index position of value if that character is found, or std::basic_string<char_t>::npos if it is not.

◆ index_of() [2/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::index_of ( const basic_string< char_t, traits_t, allocator_t > & value,
xtd::size start_index ) const -> xtd::size
inlinenodiscard

Reports the index of the first occurrence of the specified character in this basic_string. The search starts at a specified character position.

Parameters
valueAn unicode character to seek
start_indexThe search starting position
Returns
The index position of value if that character is found, or std::basic_string<char_t>::npos if it is not.

◆ index_of() [3/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::index_of ( const basic_string< char_t, traits_t, allocator_t > & value,
xtd::size start_index,
xtd::size count ) const -> xtd::size
inlinenodiscard

Reports the index of the first occurrence of the specified character in this basic_string. The search starts at a specified character position and examines a specified number of character positions.

Parameters
valueAn unicode character to seek
start_indexThe search starting position
countThe number of character positions to examine
Returns
The index position of value if that character is found, or std::basic_string<char_t>::npos if it is not.
Exceptions
xtd::index_out_of_range_exceptionstart_index + count are greater than the length of this instance.

◆ index_of() [4/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::index_of ( value_type value) const -> xtd::size
inlinenodiscardnoexcept

Reports the index of the first occurrence of the specified character in this basic_string.

Parameters
valueAn unicode character to seek
Returns
The index position of value if that character is found, or std::basic_string<char_t>::npos if it is not.

◆ index_of() [5/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::index_of ( value_type value,
xtd::size start_index ) const -> xtd::size
inlinenodiscard

Reports the index of the first occurrence of the specified character in this basic_string. The search starts at a specified character position.

Parameters
valueAn unicode character to seek
start_indexThe search starting position
Returns
The index position of value if that character is found, or std::basic_string<char_t>::npos if it is not.

◆ index_of() [6/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::index_of ( value_type value,
xtd::size start_index,
xtd::size count ) const -> xtd::size
inlinenodiscard

Reports the index of the first occurrence of the specified character in this basic_string. The search starts at a specified character position and examines a specified number of character positions.

Parameters
valueAn unicode character to seek
start_indexThe search starting position
countThe number of character positions to examine
Returns
The index position of value if that character is found, or std::basic_string<char_t>::npos if it is not.
Exceptions
xtd::index_out_of_range_exceptionstart_index + count are greater than the length of this instance.

◆ index_of_any() [1/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::index_of_any ( const xtd::array< value_type > & values) const -> xtd::size
nodiscardnoexcept

Reports the index of the first occurrence in this instance of any character in a specified array of characters.

Parameters
valuesAn unicode character array containing one or more characters to seek
Returns
The index position of the first occurrence in this instance where any character in values was found; otherwise, std::basic_string<char_t>::npos if no character in values was found.

◆ index_of_any() [2/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::index_of_any ( const xtd::array< value_type > & values,
xtd::size start_index ) const -> xtd::size
nodiscard

Reports the index of the first occurrence in this instance of any character in a specified array of characters. The search starts at a specified character position.

Parameters
valuesAn unicode character array containing one or more characters to seek
start_indexThe search starting position
Returns
The index position of the first occurrence in this instance where any character in values was found; otherwise, std::basic_string<char_t>::npos if no character in values was found.
Exceptions
xtd::index_out_of_range_exceptionstart_index + count are greater than the length of this instance.

◆ index_of_any() [3/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::index_of_any ( const xtd::array< value_type > & values,
xtd::size start_index,
xtd::size count ) const -> xtd::size
nodiscard

Reports the index of the first occurrence in this instance of any character in a specified array of characters. The search starts at a specified character position.

Parameters
valuesAn unicode character array containing one or more characters to seek
start_indexThe search starting position
countThe number of character positions to examine.
Returns
The index position of the first occurrence in this instance where any character in values was found; otherwise, std::basic_string<char_t>::npos if no character in values was found.
Exceptions
xtd::index_out_of_range_exceptionstart_index + count are greater than the length of this instance.

◆ insert()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::insert ( xtd::size start_index,
const basic_string< char_t, traits_t, allocator_t > & value ) const -> basic_string
inline

Inserts a specified instance of basic_string at a specified index position in this instance.

Parameters
start_indexThe index position of the insertion.
valueThe basic_string to insert.
Returns
A new basic_string equivalent to this instance but with value inserted at position start_index.
Remarks
If start_index is equal to the length of this instance, value is appended to the end of this instance.
For example, the return value of "abc".Insert(2, "XYZ") is "abXYZc".

◆ last_index_of() [1/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::last_index_of ( const basic_string< char_t, traits_t, allocator_t > & value) const -> xtd::size
inlinenodiscardnoexcept

Reports the index of the last occurrence of the specified basic_string in this basic_string.

Parameters
valueAn unicode character to seek
Returns
The index position of value if that character is found, or std::basic_string<char_t>::npos if it is not.

◆ last_index_of() [2/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::last_index_of ( const basic_string< char_t, traits_t, allocator_t > & value,
xtd::size start_index ) const -> xtd::size
inlinenodiscard

Reports the index of the last occurrence of the specified character in this basic_string. The search starts at a specified character position.

Parameters
valueAn unicode character to seek
start_indexThe search starting position
Returns
The index position of value if that character is found, or std::basic_string<char_t>::npos if it is not.
Exceptions
xtd::index_out_of_range_exceptionstart_index + count are greater than the length of this instance.

◆ last_index_of() [3/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::last_index_of ( const basic_string< char_t, traits_t, allocator_t > & value,
xtd::size start_index,
xtd::size count ) const -> xtd::size
inlinenodiscard

Reports the index of the last occurrence of the specified character in this basic_string. The search starts at a specified character position and examines a specified number of character positions.

Parameters
valueAn unicode character to seek
start_indexThe search starting position
countThe number of character positions to examine
Returns
The index position of value if that character is found, or std::basic_string<char_t>::npos if it is not.
Exceptions
xtd::index_out_of_range_exceptionstart_index + count are greater than the length of this instance.

◆ last_index_of() [4/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::last_index_of ( value_type value) const -> xtd::size
inlinenodiscardnoexcept

Reports the index of the last occurrence of the specified character in this tring.

Parameters
valueAn unicode character to seek
Returns
The index position of value if that character is found, or std::basic_string<char_t>::npos if it is not.

◆ last_index_of() [5/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::last_index_of ( value_type value,
xtd::size start_index ) const -> xtd::size
inlinenodiscard

Reports the index of the last occurrence of the specified character in this basic_string. The search starts at a specified character position.

Parameters
valueAn unicode character to seek
start_indexThe search starting position
Returns
The index position of value if that character is found, or std::basic_string<char_t>::npos if it is not.
Exceptions
xtd::index_out_of_range_exceptionstart_index + count are greater than the length of this instance.

◆ last_index_of() [6/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::last_index_of ( value_type value,
xtd::size start_index,
xtd::size count ) const -> xtd::size
inlinenodiscard

Reports the index of the last occurrence of the specified character in this basic_string. The search starts at a specified character position and examines a specified number of character positions.

Parameters
strA basic_string to find last index of.
valueAn unicode character to seek
start_indexThe search starting position
countThe number of character positions to examine
Returns
The index position of value if that character is found, or std::basic_string<char_t>::npos if it is not.
Exceptions
xtd::index_out_of_range_exceptionstart_index + count are greater than the length of this instance.

◆ last_index_of_any() [1/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::last_index_of_any ( const xtd::array< value_type > & values) const -> xtd::size
nodiscardnoexcept

Reports the index of the last occurrence in this instance of any character in a specified array of characters.

Parameters
valuesAn unicode character array containing one or more characters to seek
Returns
The index position of the first occurrence in this instance where any character in values was found; otherwise, std::basic_string<char_t>::npos if no character in values was found.

◆ last_index_of_any() [2/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::last_index_of_any ( const xtd::array< value_type > & values,
xtd::size start_index ) const -> xtd::size
nodiscard

Reports the index of the last occurrence in this instance of any character in a specified array of characters. The search starts at a specified character position.

Parameters
valuesAn unicode character array containing one or more characters to seek
start_indexThe search starting position
Returns
The index position of the first occurrence in this instance where any character in values was found; otherwise, std::basic_string<char_t>::npos if no character in values was found.

◆ last_index_of_any() [3/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::last_index_of_any ( const xtd::array< value_type > & values,
xtd::size start_index,
xtd::size count ) const -> xtd::size
nodiscard

Reports the index of the last occurrence in this instance of any character in a specified array of characters. The search starts at a specified character position.

Parameters
valuesAn unicode character array containing one or more characters to seek
start_indexThe search starting position
countThe number of character positions to examine.
Returns
The index position of the first occurrence in this instance where any character in values was found; otherwise, std::basic_string<char_t>::npos if no character in values was found.

◆ pad_left() [1/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::pad_left ( xtd::size total_width) const -> basic_string
inlinenodiscardnoexcept

Right-aligns the characters in this basic_string, padding with spaces on the left for a specified total length.

Parameters
total_widthThe number of characters in the resulting basic_string, equal to the number of original characters plus any additional padding characters.
Returns
A new basic_string that is equivalent to the specified basic_string, but right-aligned and padded on the left with as many spaces as needed to create a length of total_width. Or, if total_width is less than the length of the specified basic_string, a new basic_string object that is identical to the specified basic_string.
Remarks
An unicode space is defined as hexadecimal 0x20.
The pad_left(const std::basic_string<char_t>&, int) method pads the beginning of the returned basic_string. This means that, when used with right-to-left languages, it pads the right portion of the basic_string..

◆ pad_left() [2/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::pad_left ( xtd::size total_width,
char32 padding_char ) const -> basic_string
inlinenodiscardnoexcept

Right-aligns the characters in this basic_string, padding with spaces on the left for a specified total length.

Parameters
total_widthThe number of characters in the resulting basic_string, equal to the number of original characters plus any additional padding characters.
paddingCharAn unicode padding character.
Returns
A new basic_string that is equivalent to the specified basic_string, but right-aligned and padded on the left with as many spaces as needed to create a length of total_width. Or, if total_width is less than the length of the specified basic_string, a new basic_string object that is identical the specified basic_string.
Remarks
An unicode space is defined as hexadecimal 0x20.
The pad_left(const std::basic_string<char_t>&, int) method pads the beginning of the returned basic_string. This means that, when used with right-to-left languages, it pads the right portion of the basic_string..

◆ pad_right() [1/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::pad_right ( xtd::size total_width) const -> basic_string
inlinenodiscardnoexcept

Left-aligns the characters in this basic_string, padding with spaces on the right for a specified total length.

Parameters
totalWidthThe number of characters in the resulting basic_string, equal to the number of original characters plus any additional padding characters.
Returns
A new basic_string that is equivalent to the specified basic_string, but left-aligned and padded on the right with as many spaces as needed to create a length of totalWidth. Or, if totalWidth is less than the length of the specified basic_string, a new basic_string object that is identical to the specified basic_string.
Remarks
An unicode space is defined as hexadecimal 0x20.
The PadRight(const std::basic_string<char_t>&, int) method pads the end of the returned basic_string. This means that, when used with right-to-left languages, it pads the left portion of the basic_string..

◆ pad_right() [2/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::pad_right ( xtd::size total_width,
char32 padding_char ) const -> basic_string
inlinenodiscardnoexcept

Left-aligns the characters in this basic_string, padding with spaces on the right for a specified total length.

Parameters
totalWidthThe number of characters in the resulting basic_string, equal to the number of original characters plus any additional padding characters.
paddingCharAn unicode padding character.
Returns
A new basic_string that is equivalent to the specified basic_string, but left-aligned and padded on the tight with as many spaces as needed to create a length of totalWidth. Or, if totalWidth is less than the length of the specified basic_string, a new basic_string object that is identical to the specified basic_string.
Remarks
An unicode space is defined as hexadecimal 0x20.
The xtd::basic_string::pad_right method pads the end of the returned basic_string. This means that, when used with right-to-left languages, it pads the left portion of the basic_string..

◆ quoted() [1/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::quoted ( ) const -> basic_string
inlinenodiscard

Allows insertion and extraction of quoted strings, such as the ones found in CSV or XML.

Returns
A new quoted basic_string.
Remarks
the delimiter is set to
" 
by default and the escape is set to \\endiskip by default.
for more information see std::quoted.

◆ quoted() [2/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::quoted ( value_type delimiter) const -> basic_string
inlinenodiscard

Allows insertion and extraction of quoted strings, such as the ones found in CSV or XML ith specified delimiter.

Parameters
delimiterThe character to use as the delimiter, defaults to ".
Returns
A new quoted basic_string.
Remarks
for more information see std::quoted.

◆ quoted() [3/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::quoted ( value_type delimiter,
value_type escape ) const -> basic_string
inlinenodiscard

Allows insertion and extraction of quoted strings, such as the ones found in CSV or XML ith specified delimiter and escape.

Parameters
delimiterThe character to use as the delimiter, defaults to ".
escapeThe character to use as the escape character, defaults to \\endiskip.
Returns
A new quoted basic_string.
Remarks
for more information see std::quoted.

◆ remove() [1/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::remove ( xtd::size start_index) const -> basic_string
inlinenodiscard

Deletes all the characters from this basic_string beginning at a specified position and continuing through the last position.

Parameters
start_indexThe position to begin deleting characters.
Returns
A new basic_string object that is equivalent to this basic_string less the removed characters.

◆ remove() [2/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::remove ( xtd::size start_index,
xtd::size count ) const -> basic_string
inlinenodiscard

Deletes all the characters from this basic_string beginning at a specified position and continuing through the last position.

Parameters
start_indexThe position to begin deleting characters.
countThe number of characters to delete.
Returns
A new basic_string object that is equivalent to this basic_string less the removed characters.

◆ replace() [1/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::replace ( value_type old_char,
value_type new_char ) const -> basic_string
inlinenodiscardnoexcept

Replaces all occurrences of a specified char_t in this basic_string with another specified char_t.

Parameters
old_charA char_t to be replaced.
new_charA char_t to replace all occurrences of old_char.
Returns
A new basic_string equivalent to the specified basic_string but with all instances of old_char replaced with new_char.

◆ replace() [2/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::replace ( const basic_string< char_t, traits_t, allocator_t > & old_string,
const basic_string< char_t, traits_t, allocator_t > & new_string ) const -> basic_string
inlinenodiscardnoexcept

Replaces all occurrences of a specified basic_string in this basic_string with another specified basic_string.

Parameters
old_stringA basic_string to be replaced.
new_stringA basic_string to replace all occurrences of old_string.
Returns
A new basic_string equivalent to the specified basic_string but with all instances of old_string replaced with new_string.
Remarks
If new_string is empty, all occurrences of old_string are removed

◆ split() [1/9]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::split ( ) const -> xtd::array< basic_string >
nodiscardnoexcept

Splits this basic_string into substrings that are based on the default white-space characters. White-space characters are defined by the c++ standard and return true if they are passed to the xtd::char_object::isspace() or std::iswspace() method.

Returns
An array whose elements contain the substrings in this basic_string that are delimited by one or more characters in white-space separators. For more information, see the Remarks section.
Remarks
Delimiter characters are not included in the elements of the returned array.
If the specified basic_string does not contain any of the characters in separator, or the count parameter is 1, the returned array consists of a single element that contains the specified basic_string.

◆ split() [2/9]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::split ( value_type separator) const -> xtd::array< basic_string >
nodiscardnoexcept

Splits this basic_string into substrings that are based on the characters in an array.

Parameters
separatorA character that delimits the substrings in this basic_string.
Returns
An array whose elements contain the substrings in this basic_string that are delimited by one or more characters in separators. For more information, see the Remarks section.
Remarks
Delimiter characters are not included in the elements of the returned array.
If the specified basic_string does not contain any of the characters in separator, or the count parameter is 1, the returned array consists of a single element that contains the specified basic_string.

◆ split() [3/9]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::split ( value_type separator,
xtd::string_split_options options ) const -> xtd::array< basic_string >
nodiscardnoexcept

Splits this basic_string into substrings based on the characters in an array. You can specify whether the substrings include empty array elements.

Parameters
separatorA character that delimits the substrings in this basic_string
optionsxtd::string_split_options::remove_empty_entries to omit empty array elements from the array returned; or None to include empty array elements in the array returned.
Returns
An array whose elements contain the substrings in this basic_string that are delimited by one or more characters in separators. For more information, see the Remarks section.
Remarks
Delimiter characters are not included in the elements of the returned array.
If the specified basic_string does not contain any of the characters in separator, or the count parameter is 1, the returned array consists of a single element that contains the specified basic_string.
If the specified basic_string does not contain any of the characters in separator, the returned array consists of a single element that contains the specified basic_string.
If the options parameter is remove_empty_entries and the length of the specified basic_string is zero, the method returns an empty array.
Each element of separator defines a separate delimiter that consists of a single character. If the options argument is none, and two delimiters are adjacent or a delimiter is found at the beginning or end of the specified basic_string, the corresponding array element contains empty basic_string. For example, if separator includes two elements, "-" and "_", the value of the basic_string instance is "-_aa-_", and the value of the options argument is None, the method returns a basic_string array with the following five elements:
  1. empty basic_string, which represents the empty basic_string that precedes the "-" character at index 0.
  2. empty basic_string, which represents the empty basic_string between the "-" character at index 0 and the "_" character at index 1.
  3. "aa",
  4. empty basic_string, which represents the empty basic_string that follows the "_" character at index 4.
  5. empty basic_string, which represents the empty basic_string that follows the "-" character at index 5.
If the separator parameter contains no characters, white-space characters are assumed to be the delimiters. White-space characters are defined by the c++ standard and return true if they are passed to the xtd::char_object::isspace() or std::iswspace() method.
If count is greater than the number of substrings, the available substrings are returned.

◆ split() [4/9]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::split ( value_type separator,
xtd::size count ) const -> xtd::array< basic_string >
nodiscardnoexcept

Splits this basic_string into a maximum number of substrings based on the characters in an array. You also specify the maximum number of substrings to return.

Parameters
separatorA character array that delimits the substrings in this basic_string, an empty array that contains no delimiters.
countThe maximum number of substrings to return.
Remarks
Delimiter characters are not included in the elements of the returned array.
If the specified basic_string does not contain any of the characters in separator, or the count parameter is 1, the returned array consists of a single element that contains the specified basic_string.
If the separator parameter contains no characters, white-space characters are assumed to be the delimiters. White-space characters are defined by the Unicode standard and return true if they are passed to the char_t.IsWhiteSpace method.
Each element of separator defines a separate delimiter character. If two delimiters are adjacent, or a delimiter is found at the beginning or end of the specified basic_string, the corresponding array element contains empty basic_string.
If there are more than count substrings in the specified basic_string, the first count minus 1 substrings are returned in the first count minus 1 elements of the return value, and the remaining characters in the specified basic_string are returned in the last element of the return value.

◆ split() [5/9]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::split ( value_type separator,
xtd::size count,
xtd::string_split_options options ) const -> xtd::array< basic_string >
nodiscardnoexcept

Splits this basic_string into a maximum number of substrings based on the characters in an array.

Parameters
separatorsA character array that delimits the substrings in this basic_string, an empty array that contains no delimiters.
countThe maximum number of substrings to return.
optionsxtd::string_split_options::remove_empty_entries to omit empty array elements from the array returned; or None to include empty array elements in the array returned.
Returns
An array whose elements contain the substrings in this basic_string that are delimited by one or more characters in separators. For more information, see the Remarks section.
Remarks
Delimiter characters are not included in the elements of the returned array.
If the specified basic_string does not contain any of the characters in separator, or the count parameter is 1, the returned array consists of a single element that contains the specified basic_string.
If the count parameter is zero, or the options parameter is remove_empty_entries and the length of the specified basic_string is zero, an empty array is returned.
Each element of separator defines a separate delimiter character. If the options parameter is None, and two delimiters are adjacent or a delimiter is found at the beginning or end of the specified basic_string, the corresponding array element contains an empty basic_string.
If there are more than count substrings in the specified basic_string, the first count minus 1 substrings are returned in the first count minus 1 elements of the return value, and the remaining characters in the specified basic_string are returned in the last element of the return value.
If count is greater than the number of substrings, the available substrings are returned.

◆ split() [6/9]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::split ( const xtd::array< value_type > & separators) const -> xtd::array< basic_string >
nodiscardnoexcept

Splits this basic_string into substrings that are based on the characters in an array.

Parameters
separatorsA character array that delimits the substrings in this basic_string, an empty array that contains no delimiters.
Returns
An array whose elements contain the substrings in this basic_string that are delimited by one or more characters in separators. For more information, see the Remarks section.
Remarks
Delimiter characters are not included in the elements of the returned array.
If the specified basic_string does not contain any of the characters in separator, or the count parameter is 1, the returned array consists of a single element that contains the specified basic_string.

◆ split() [7/9]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::split ( const xtd::array< value_type > & separators,
xtd::string_split_options options ) const -> xtd::array< basic_string >
nodiscardnoexcept

Splits this basic_string into substrings based on the characters in an array. You can specify whether the substrings include empty array elements.

Parameters
separatorsA character array that delimits the substrings in this basic_string, an empty array that contains no delimiters.
optionsxtd::string_split_options::remove_empty_entries to omit empty array elements from the array returned; or None to include empty array elements in the array returned.
Returns
An array whose elements contain the substrings in this basic_string that are delimited by one or more characters in separators. For more information, see the Remarks section.
Remarks
Delimiter characters are not included in the elements of the returned array.
If the specified basic_string does not contain any of the characters in separator, or the count parameter is 1, the returned array consists of a single element that contains the specified basic_string.
If the specified basic_string does not contain any of the characters in separator, the returned array consists of a single element that contains the specified basic_string.
If the options parameter is remove_empty_entries and the length of the specified basic_string is zero, the method returns an empty array.
Each element of separator defines a separate delimiter that consists of a single character. If the options argument is none, and two delimiters are adjacent or a delimiter is found at the beginning or end of the specified basic_string, the corresponding array element contains empty basic_string. For example, if separator includes two elements, "-" and "_", the value of the basic_string instance is "-_aa-_", and the value of the options argument is None, the method returns a basic_string array with the following five elements:
  1. empty basic_string, which represents the empty basic_string that precedes the "-" character at index 0.
  2. empty basic_string, which represents the empty basic_string between the "-" character at index 0 and the "_" character at index 1.
  3. "aa",
  4. empty basic_string, which represents the empty basic_string that follows the "_" character at index 4.
  5. empty basic_string, which represents the empty basic_string that follows the "-" character at index 5.
If the separator parameter contains no characters, white-space characters are assumed to be the delimiters. White-space characters are defined by the c++ standard and return true if they are passed to the xtd::char_object::isspace() or std::iswspace() method.
If count is greater than the number of substrings, the available substrings are returned.

◆ split() [8/9]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::split ( const xtd::array< value_type > & separators,
xtd::size count ) const -> xtd::array< basic_string >
nodiscardnoexcept

Splits this basic_string into a maximum number of substrings based on the characters in an array. You also specify the maximum number of substrings to return.

Parameters
separatorsA character array that delimits the substrings in this basic_string, an empty array that contains no delimiters.
countThe maximum number of substrings to return.
Remarks
Delimiter characters are not included in the elements of the returned array.
If the specified basic_string does not contain any of the characters in separator, or the count parameter is 1, the returned array consists of a single element that contains the specified basic_string.
If the separator parameter contains no characters, white-space characters are assumed to be the delimiters. White-space characters are defined by the Unicode standard and return true if they are passed to the char_t.IsWhiteSpace method.
Each element of separator defines a separate delimiter character. If two delimiters are adjacent, or a delimiter is found at the beginning or end of the specified basic_string, the corresponding array element contains empty basic_string.
If there are more than count substrings in the specified basic_string, the first count minus 1 substrings are returned in the first count minus 1 elements of the return value, and the remaining characters in the specified basic_string are returned in the last element of the return value.

◆ split() [9/9]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::split ( const xtd::array< value_type > & separators,
xtd::size count,
xtd::string_split_options options ) const -> xtd::array< basic_string >
nodiscardnoexcept

Splits this basic_string into a maximum number of substrings based on the characters in an array.

Parameters
separatorsA character array that delimits the substrings in this basic_string, an empty array that contains no delimiters.
countThe maximum number of substrings to return.
optionsxtd::string_split_options::remove_empty_entries to omit empty array elements from the array returned; or None to include empty array elements in the array returned.
Returns
An array whose elements contain the substrings in this basic_string that are delimited by one or more characters in separators. For more information, see the Remarks section.
Remarks
Delimiter characters are not included in the elements of the returned array.
If the specified basic_string does not contain any of the characters in separator, or the count parameter is 1, the returned array consists of a single element that contains the specified basic_string.
If the count parameter is zero, or the options parameter is remove_empty_entries and the length of the specified basic_string is zero, an empty array is returned.
Each element of separator defines a separate delimiter character. If the options parameter is None, and two delimiters are adjacent or a delimiter is found at the beginning or end of the specified basic_string, the corresponding array element contains an empty basic_string.
If there are more than count substrings in the specified basic_string, the first count minus 1 substrings are returned in the first count minus 1 elements of the return value, and the remaining characters in the specified basic_string are returned in the last element of the return value.
If count is greater than the number of substrings, the available substrings are returned.

◆ starts_with() [1/5]

template<typename char_t, typename traits_t, typename allocator_t>
bool xtd::basic_string< char_t, traits_t, allocator_t >::starts_with ( value_type value) const
inlinenodiscardnoexcept

Determines whether the beginning of this instance of xtd::basic_string matches a specified xtd::basic_string.

Parameters
valueA xtd::basic_string to compare to.
Returns
bool true if value matches the beginning of the specified basic_string; otherwise, false.
Remarks
This method compares value to the substring at the beginning of the specified basic_string that is the same length as value, and returns an indication whether they are equal. To be equal, value must be a reference to this same instance, or match the beginning of the specified basic_string.

◆ starts_with() [2/5]

template<typename char_t, typename traits_t, typename allocator_t>
bool xtd::basic_string< char_t, traits_t, allocator_t >::starts_with ( value_type value,
bool ignore_case ) const
inlinenodiscardnoexcept

Determines whether the beginning of this instance of xtd::basic_string matches a specified xtd::basic_string, ignoring or honoring their case.

Parameters
valueA xtd::basic_string to compare to.
ignore_casetrue to ignore case when comparing the specified basic_string and value; otherwise, false
Returns
bool true if value matches the beginning of the specified basic_string; otherwise, false.
Remarks
This method compares value to the substring at the beginning of the specified basic_string that is the same length as value, and returns an indication whether they are equal. To be equal, value must be a reference to this same instance, or match the beginning of the specified basic_string.

◆ starts_with() [3/5]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::starts_with ( const basic_string< char_t, traits_t, allocator_t > & value) const -> bool
inlinenodiscardnoexcept

Determines whether the beginning of this instance of xtd::basic_string matches a specified xtd::basic_string.

Parameters
valueA xtd::basic_string to compare to.
Returns
bool true if value matches the beginning of the specified basic_string; otherwise, false.
Remarks
This method compares value to the substring at the beginning of the specified basic_string that is the same length as value, and returns an indication whether they are equal. To be equal, value must be a reference to this same instance, or match the beginning of the specified basic_string.

◆ starts_with() [4/5]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::starts_with ( const basic_string< char_t, traits_t, allocator_t > & value,
bool ignore_case ) const -> bool
inlinenodiscardnoexcept

Determines whether the beginning of this instance of xtd::basic_string matches a specified xtd::basic_string, ignoring or honoring their case.

Parameters
valueA xtd::basic_string to compare to.
ignore_casetrue to ignore case when comparing the specified basic_string and value; otherwise, false
Returns
bool true if value matches the beginning of the specified basic_string; otherwise, false.
Remarks
This method compares value to the substring at the beginning of the specified basic_string that is the same length as value, and returns an indication whether they are equal. To be equal, value must be a reference to this same instance, or match the beginning of the specified basic_string.

◆ starts_with() [5/5]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::starts_with ( const basic_string< char_t, traits_t, allocator_t > & value,
xtd::string_comparison comparison_type ) const -> bool
inlinenodiscardnoexcept

Determines whether the end of this basic_string matches the specified basic_string when compared using the specified comparison option.

Parameters
valueThe string to compare to the substring at the end of this instance.
comparison_typeOne of the enumeration values that determines how this basic_string and value are compared.
Returns
bool true if value matches the end of the specified basic_string; otherwise, false.

◆ substring() [1/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::substring ( xtd::size start_index) const -> basic_string
inlinenodiscard

Retrieves a substring from this instance. The substring starts at a specified character position and has a specified length.

Parameters
strbasic_string to substring.
start_indexThe zero-based starting character position of a substring in this instance.
Returns
A basic_string equivalent to the substring of length length that begins at start_index in this instance, or Empty if start_index is equal to the length of this instance and length is zero.
Exceptions
xtd::argument_out_of_range_exception`start_index` is greater than the length() of this instance.

◆ substring() [2/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::substring ( xtd::size start_index,
xtd::size length ) const -> basic_string
inlinenodiscard

Retrieves a substring from this instance. The substring starts at a specified character position and has a specified length.

Parameters
start_indexThe zero-based starting character position of a substring in this instance.
lengthThe number of characters in the substring.
Returns
A basic_string equivalent to the substring of length length that begins at start_index in this instance, or Empty if start_index is equal to the length of this instance and length is zero.
Exceptions
xtd::argument_out_of_range_exception`start_index` plus `length` is greater than the length() of this instance.

◆ to_array() [1/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::to_array ( ) const -> xtd::array< value_type >
nodiscardnoexcept

Copies the characters in this instance to a Unicode character array.

Returns
A character array whose elements are the individual characters of this instance. If this instance is an empty xtd::basic_string, the returned array is empty and has a zero length.

◆ to_array() [2/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::to_array ( xtd::size start_index) const -> xtd::array< value_type >
nodiscard

Copies the characters in this instance to a Unicode character array starting at specified index.

Parameters
start_indexThe starting position of basic_string to convert.
Returns
A character array whose elements are the individual characters of this instance. If this instance is an empty xtd::basic_string, the returned array is empty and has a zero length.

◆ to_array() [3/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::to_array ( xtd::size start_index,
xtd::size length ) const -> xtd::array< value_type >
nodiscard

Copies the characters in this instance to a Unicode character array starting at specified index with specified length.

Parameters
start_indexThe starting position of basic_string to convert.
lengthThe length of the basic_string to convert
Returns
A character array whose elements are the individual characters of this instance. If this instance is an empty xtd::basic_string, the returned array is empty and has a zero length.

◆ to_char_array() [1/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::to_char_array ( ) const -> xtd::array< value_type >
nodiscardnoexcept

Copies the characters in this instance to a Unicode character array.

Returns
A character array whose elements are the individual characters of this instance. If this instance is an empty xtd::basic_string, the returned array is empty and has a zero length.

◆ to_char_array() [2/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::to_char_array ( xtd::size start_index,
xtd::size length ) const -> xtd::array< value_type >
nodiscard

Copies the characters in this instance to a Unicode character array starting at specified index with specified length.

Parameters
start_indexThe starting position of basic_string to convert.
lengthThe length of the basic_string to convert
Returns
A character array whose elements are the individual characters of this instance. If this instance is an empty xtd::basic_string, the returned array is empty and has a zero length.

◆ to_lower()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::to_lower ( ) const -> basic_string
inlinenodiscardnoexcept

Returns a copy of the current xtd::basic_string converted to lowercase.

Returns
A string in lowercase.

◆ to_string()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::to_string ( ) const -> basic_string< char >
inlinenodiscardoverridevirtualnoexcept

Converts the value of this instance to a xtd::basic_string <char>.

Returns
The current string.
Todo
Uncomment the folllowing line and remove the next..

Reimplemented from xtd::object.

◆ to_title_case()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::to_title_case ( ) const -> basic_string
nodiscardnoexcept

Converts the current basic_string to title case (except for words that are entirely in uppercase, which are considered to be acronyms).

Returns
A new basic_string in title case.

◆ to_u16string()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::to_u16string ( ) const -> basic_string< xtd::char16 >
inlinenodiscardnoexcept

Converts the value of this instance to a xtd::basic_string <xtd::char16>.

Returns
The current string.

◆ to_u32string()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::to_u32string ( ) const -> basic_string< xtd::char32 >
inlinenodiscardnoexcept

Converts the value of this instance to a xtd::basic_string <xtd::char32>.

Returns
The current string.

◆ to_u8string()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::to_u8string ( ) const -> basic_string< xtd::char8 >
inlinenodiscardnoexcept

Converts the value of this instance to a xtd::basic_string <xtd::char8>.

Returns
The current string.

◆ to_upper()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::to_upper ( ) const -> basic_string
inlinenodiscardnoexcept

Returns a copy of the current xtd::basic_string converted to uppercase.

Returns
A string in uppercase.

◆ to_wstring()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::to_wstring ( ) const -> basic_string< xtd::wchar >
inlinenodiscardnoexcept

Converts the value of this instance to a xtd::basic_string <xtd::wchar>.

Returns
The current string.

◆ trim() [1/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::trim ( ) const -> basic_string
inlinenodiscardnoexcept

Removes all leading and trailing occurrences of white-space characters from the specified xtd::basic_string.

Parameters
strxtd::basic_string to trim end.
trim_charA character to remove.
Returns
The xtd::basic_string that remains after all occurrences of the character in the trim_char parameter are removed from the start and te and of the specified xtd::basic_string.

◆ trim() [2/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::trim ( value_type trim_char) const -> basic_string
nodiscardnoexcept

Removes all leading and trailing occurrences of a character specified from the specified xtd::basic_string .

Parameters
strxtd::basic_string to trim start.
trim_charA character to remove.
Returns
The xtd::basic_string that remains after all occurrences of the character in the trim_char parameter are removed from the start and the end of the specified xtd::basic_string.

◆ trim() [3/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::trim ( const xtd::array< value_type > & trim_chars) const -> basic_string
nodiscardnoexcept

Removes all leading and trailing occurrences of a set of characters specified in an array from the specified xtd::basic_string.

Parameters
strxtd::basic_string to trim end.
trim_charsAn array of characters to remove.
Returns
The xtd::basic_string that remains after all occurrences of the characters in the trim_chars parameter are removed from the start and the edn of the specified xtd::basic_string.

◆ trim_end() [1/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::trim_end ( ) const -> basic_string
inlinenodiscardnoexcept

Removes all trailing occurrences of white-space characters from the specified xtd::basic_string.

Parameters
strxtd::basic_string to trim end.
trim_charA character to remove.
Returns
The xtd::basic_string that remains after all occurrences of the character in the trim_char parameter are removed from the end of the specified xtd::basic_string.

◆ trim_end() [2/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::trim_end ( value_type trim_char) const -> basic_string
nodiscardnoexcept

Removes all trailing occurrences of a character specified from the specified xtd::basic_string .

Parameters
strxtd::basic_string to trim start.
trim_charA character to remove.
Returns
The xtd::basic_string that remains after all occurrences of the character in the trim_char parameter are removed from the end of the specified xtd::basic_string.

◆ trim_end() [3/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::trim_end ( const xtd::array< value_type > & trim_chars) const -> basic_string
nodiscardnoexcept

Removes all trailing occurrences of a set of characters specified in an array from the specified xtd::basic_string.

Parameters
strxtd::basic_string to trim end.
trim_charsAn array of characters to remove.
Returns
The xtd::basic_string that remains after all occurrences of the characters in the trim_chars parameter are removed from the end of the specified xtd::basic_string.

◆ trim_start() [1/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::trim_start ( ) const -> basic_string
inlinenodiscardnoexcept

Removes all leading occurrences of white-space characters from the specified xtd::basic_string.

Parameters
strxtd::basic_string to trim start.
trim_charA character to remove.
Returns
The xtd::basic_string that remains after all occurrences of the character in the trim_char parameter are removed from the start of the specified xtd::basic_string.

◆ trim_start() [2/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::trim_start ( value_type trim_char) const -> basic_string
nodiscardnoexcept

Removes all leading occurrences of a character specified from the specified xtd::basic_string .

Parameters
strxtd::basic_string to trim start.
trim_charA character to remove.
Returns
The xtd::basic_string that remains after all occurrences of the character in the trim_char parameter are removed from the start of the specified xtd::basic_string.

◆ trim_start() [3/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::trim_start ( const xtd::array< value_type > & trim_chars) const -> basic_string
nodiscardnoexcept

Removes all leading occurrences of a set of characters specified in an array from the specified xtd::basic_string.

Parameters
strAn xtd::basic_string to trim start.
trim_charsAn array of characters to remove.
Returns
The xtd::basic_string that remains after all occurrences of the characters in the trim_chars parameter are removed from the start of the specified xtd::basic_string.

◆ compare() [1/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::compare ( const basic_string< char_t, traits_t, allocator_t > & str_a,
const basic_string< char_t, traits_t, allocator_t > & str_b ) -> xtd::int32
inlinestaticnodiscardnoexcept

Compares two specified basic_string objects and returns an integer that indicates their relative position in the sort order.

Parameters
str_aThe first basic_string to compare.
str_bThe second basic_string to compare.
Returns
A 32-bit signed integer that indicates the lexical relationship between the two compares.
Value Condition
Less than zero str_a precedes str_b in the sort order.
Zero str_a occurs in the same position as str_b in the sort order.
Greater than zero str_a follows str_b in the sort order.

◆ compare() [2/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::compare ( const basic_string< char_t, traits_t, allocator_t > & str_a,
const basic_string< char_t, traits_t, allocator_t > & str_b,
bool ignore_case ) -> xtd::int32
inlinestaticnodiscardnoexcept

Compares two specified basic_string objects, ignoring or honoring their case, and returns an integer that indicates their relative position in the sort order.

Parameters
str_aThe first basic_string to compare.
str_bThe second basic_string to compare.
ignore_casetrue to ignore case during the comparison; otherwise, false.
Returns
A 32-bit signed integer that indicates the lexical relationship between the two compares.
Value Condition
Less than zero str_a precedes str_b in the sort order.
Zero str_a occurs in the same position as str_b in the sort order.
Greater than zero str_a follows str_b in the sort order.

◆ compare() [3/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::compare ( const basic_string< char_t, traits_t, allocator_t > & str_a,
const basic_string< char_t, traits_t, allocator_t > & str_b,
xtd::string_comparison comparison_type ) -> xtd::int32
inlinestaticnodiscardnoexcept

Compares two specified basic_string objects using the specified rules, and returns an integer that indicates their relative position in the sort order.

Parameters
str_aThe first basic_string to compare.
str_bThe second basic_string to compare.
comparison_typeOne of the enumeration values that specifies the rules to use in the comparison.
Returns
A 32-bit signed integer that indicates the lexical relationship between the two compares.
Value Condition
Less than zero str_a precedes str_b in the sort order.
Zero str_a occurs in the same position as str_b in the sort order.
Greater than zero str_a follows str_b in the sort order.

◆ compare() [4/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::compare ( const basic_string< char_t, traits_t, allocator_t > & str_a,
xtd::size index_a,
const basic_string< char_t, traits_t, allocator_t > & str_b,
xtd::size index_b,
xtd::size length ) -> xtd::int32
inlinestaticnodiscard

Compares substrings of two specified basic_string objects and returns an integer that indicates their relative position in the sort order.

Parameters
str_aThe first basic_string to use in the comparison.
index_aThe position of the substring within str_a.
str_bThe second basic_string to use in the comparison.
index_bThe position of the substring within str_b.
lengthThe maximum number of characters in the substrings to compare
Returns
A 32-bit signed integer that indicates the lexical relationship between the two compares.
Value Condition
Less than zero str_a precedes str_b in the sort order.
Zero str_a occurs in the same position as str_b in the sort order.
Greater than zero str_a follows str_b in the sort order.

◆ compare() [5/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::compare ( const basic_string< char_t, traits_t, allocator_t > & str_a,
xtd::size index_a,
const basic_string< char_t, traits_t, allocator_t > & str_b,
xtd::size index_b,
xtd::size length,
bool ignore_case ) -> xtd::int32
inlinestaticnodiscard

Compares substrings of two specified basic_string objects, ignoring or honoring their case, and returns an integer that indicates their relative position in the sort order.

Parameters
str_aThe first basic_string to use in the comparison.
index_aThe position of the substring within str_a.
str_bThe second basic_string to use in the comparison.
index_bThe position of the substring within str_b.
lengthThe maximum number of characters in the substrings to compare
ignore_casetrue to ignore case during the comparison; otherwise, false.
Returns
A 32-bit signed integer that indicates the lexical relationship between the two compares.
Value Condition
Less than zero str_a precedes str_b in the sort order.
Zero str_a occurs in the same position as str_b in the sort order.
Greater than zero str_a follows str_b in the sort order.

◆ compare() [6/6]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::compare ( const basic_string< char_t, traits_t, allocator_t > & str_a,
xtd::size index_a,
const basic_string< char_t, traits_t, allocator_t > & str_b,
xtd::size index_b,
xtd::size length,
xtd::string_comparison comparison_type ) -> xtd::int32
inlinestaticnodiscard

Compares substrings of two specified basic_string objects using the specified rules, and returns an integer that indicates their relative position in the sort order.

Parameters
str_aThe first basic_string to use in the comparison.
index_aThe position of the substring within str_a.
str_bThe second basic_string to use in the comparison.
index_bThe position of the substring within str_b.
lengthThe maximum number of characters in the substrings to compare
comparison_typeOne of the enumeration values that specifies the rules to use in the comparison.
Returns
A 32-bit signed integer that indicates the lexical relationship between the two compares.
Value Condition
Less than zero str_a precedes str_b in the sort order.
Zero str_a occurs in the same position as str_b in the sort order.
Greater than zero str_a follows str_b in the sort order.

◆ concat() [1/9]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::concat ( const basic_string< char_t, traits_t, allocator_t > & str_a,
const basic_string< char_t, traits_t, allocator_t > & str_b,
const basic_string< char_t, traits_t, allocator_t > & str_c,
const basic_string< char_t, traits_t, allocator_t > & str_d ) -> basic_string
inlinestaticnodiscardnoexcept

Concatenates four specified instances of basic_string.

Parameters
str_aThe first basic_string to concatenate.
str_bThe second basic_string to concatenate.
str_cThe third basic_string to concatenate.
str_dThe fourth basic_string to concatenate.
Returns
The concatenation of str_a, str_b, str_c and str_d.

◆ concat() [2/9]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename object_a_t, typename object_b_t, typename object_c_t, typename object_d_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::concat ( object_a_t obj_a,
object_b_t obj_b,
object_c_t obj_c,
object_d_t obj_d ) -> basic_string
inlinestaticnodiscardnoexcept

Concatenates four specified instances of object.

Parameters
obj_aThe first object to concatenate.
obj_bThe second object to concatenate.
obj_cThe third object to concatenate.
obj_dThe fourth object to concatenate.
Returns
The concatenation of obj_a, obj_b, obj_c and obj_d.

◆ concat() [3/9]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::concat ( const basic_string< char_t, traits_t, allocator_t > & str_a,
const basic_string< char_t, traits_t, allocator_t > & str_b,
const basic_string< char_t, traits_t, allocator_t > & str_c ) -> basic_string
inlinestaticnodiscardnoexcept

Concatenates three specified instances of basic_string.

Parameters
str_aThe first basic_string to concatenate.
str_bThe second basic_string to concatenate.
str_cThe third basic_string to concatenate.
Returns
basic_string The concatenation of str_a, str_b and str_c.

◆ concat() [4/9]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename object_a_t, typename object_b_t, typename object_c_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::concat ( object_a_t obj_a,
object_b_t obj_b,
object_c_t obj_c ) -> basic_string
inlinestaticnodiscardnoexcept

Concatenates three specified instances of object.

Parameters
obj_aThe first object to concatenate.
obj_bThe second object to concatenate.
obj_cThe third object to concatenate.
Returns
The concatenation of obj_a, obj_b and obj_c.

◆ concat() [5/9]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::concat ( const basic_string< char_t, traits_t, allocator_t > & str_a,
const basic_string< char_t, traits_t, allocator_t > & str_b ) -> basic_string
inlinestaticnodiscardnoexcept

Concatenates two specified instances of basic_string.

Parameters
str_aThe first basic_string to concatenate.
str_bThe second basic_string to concatenate.
Returns
basic_string The concatenation of str_a and str_b.

◆ concat() [6/9]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename object_a_t, typename object_b_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::concat ( object_a_t obj_a,
object_b_t obj_b ) -> basic_string
inlinestaticnodiscardnoexcept

Concatenates two specified instances of object.

Parameters
obj_aThe first object to concatenate.
obj_bThe second object to concatenate.
Returns
The concatenation of obj_a and obj_b.

◆ concat() [7/9]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::concat ( const xtd::array< basic_string< char_t, traits_t, allocator_t > > & values) -> basic_string
staticnodiscardnoexcept

Concatenates the elements of a specified basic_string array.

Parameters
valuesAn array of basic_string instances.
Returns
The concatenated elements of values.

◆ concat() [8/9]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename object_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::concat ( const xtd::array< object_t > & args) -> basic_string
staticnodiscardnoexcept

Concatenates the basic_string representations of the elements in a specified object array.

Parameters
argsAn object array that contains the elements to concatenate.
Returns
The concatenated basic_string representations of the values of the elements in args.

◆ concat() [9/9]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename value_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::concat ( value_t value) -> basic_string
inlinestaticnodiscardnoexcept

Creates the basic_string representation of a specified object.

Parameters
valueThe object to represent.
Returns
The basic_string representation of the value of arg.

◆ demangle()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::demangle ( const basic_string< char_t, traits_t, allocator_t > & name) -> basic_string
inlinestaticnodiscard

Gets demangled basic_string of name,.

Parameters
nameThe name to demangle.
Returns
The demangled basic_string of name.
Examples
The following example shows how to use xtd::basic_string::demangle.
#include <xtd/xtd>
using namespace xtd;
auto main() -> int {
console::write_line("name = {}", typeid(xtd::date_time).name());
console::write_line("demangled name = {}", basic_string::demangle(typeid(xtd::date_time).name()));
}
// This code produces the following output on macOS :
//
// name = N3xtd9date_timeE
// demangled name = xtd::date_time
static auto demangle(const basic_string &name) -> basic_string
Gets demangled basic_string of name,.
Definition basic_string.hpp:1189
static void write_line()
Writes the current line terminator to the standard output stream using the specified format informati...
Represents an instant in time, typically expressed as a date and time of day.
Definition date_time.hpp:83
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8

◆ equals() [4/7]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::equals ( const basic_string< char_t, traits_t, allocator_t > & a,
const basic_string< char_t, traits_t, allocator_t > & b ) -> bool
inlinestaticnodiscardnoexcept

Determines whether two specified xtd::basic_string objects have the same value.

Parameters
aThe first basic_string to compare.
bThe second basic_string to compare.
Returns
true if the value of a is the same as the value of b; otherwise, false.
Remarks
This method performs an ordinal (case-sensitive) comparison.

◆ equals() [5/7]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename char_a_t, typename char_b_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::equals ( const char_a_t * a,
const char_b_t * b ) -> bool
inlinestaticnodiscardnoexcept

Determines whether two specified xtd::basic_string objects have the same value.

Parameters
aThe first basic_string to compare.
bThe second basic_string to compare.
Returns
true if the value of a is the same as the value of b; otherwise, false.
Remarks
This method performs an ordinal (case-sensitive) comparison.

◆ equals() [6/7]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::equals ( const basic_string< char_t, traits_t, allocator_t > & a,
const basic_string< char_t, traits_t, allocator_t > & b,
bool ignore_case ) -> bool
inlinestaticnodiscardnoexcept

Determines whether two specified xtd::basic_string objects have the same value, ignoring or honoring their case.

Parameters
aThe first basic_string to compare.
bThe second basic_string to compare.
ignore_casetrue to ignore case when comparing this instance and value; otherwise, false
Returns
true if the value of a is the same as the value of b; otherwise, false.
Remarks
This method performs an ordinal comparison.

◆ equals() [7/7]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename char_a_t, typename char_b_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::equals ( const char_a_t * a,
const char_b_t * b,
bool ignore_case ) -> bool
inlinestaticnodiscardnoexcept

Determines whether two specified xtd::basic_string objects have the same value, ignoring or honoring their case.

Parameters
aThe first basic_string to compare.
bThe second basic_string to compare.
ignore_casetrue to ignore case when comparing this instance and value; otherwise, false
Returns
true if the value of a is the same as the value of b; otherwise, false.
Remarks
This method performs an ordinal comparison.

◆ is_empty() [1/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::is_empty ( const xtd::basic_string< value_type, traits_type, allocator_type > & string) -> bool
inlinestaticnodiscardnoexcept

Indicates whether the specifeid basic_string is an empty basic_string ("").

Parameters
stringThe xtd::basic_string to check if empty.
Returns
true if the value parameter is null or an empty basic_string (""); otherwise, false.

◆ join() [1/3]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename collection_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::join ( const basic_string< char_t, traits_t, allocator_t > & separator,
const collection_t & values ) -> basic_string
inlinestaticnodiscardnoexcept

Concatenates a specified separator basic_string between each element of a specified object array, yielding a single concatenated basic_string.

Parameters
separatorA basic_string separator.
valuesAn array of Object.
Returns
A basic_string consisting of the elements of value interspersed with the separator basic_string.
Remarks
For example if separator is ", " and the elements of value are "red", "blue", "green", and "yellow", Join(separator, value) returns "red, blue, green, yellow".
stream << operator is called on each object to generate the content.

◆ join() [2/3]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename collection_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::join ( const basic_string< char_t, traits_t, allocator_t > & separator,
const collection_t & values,
xtd::size index ) -> basic_string
inlinestaticnodiscard

Concatenates a specified separator basic_string between each element of a specified object array, yielding a single concatenated basic_string.

Parameters
separatorA basic_string separator.
valuesAn array of Object.
start_indexThe first array element in value to use.
Returns
A basic_string consisting of the elements of value interspersed with the separator basic_string.
Remarks
For example if separator is ", " and the elements of value are "red", "blue", "green", and "yellow", Join(separator, value) returns "red, blue, green, yellow".
stream << operator is called on each object to generate the content.

◆ join() [3/3]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename collection_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::join ( const basic_string< char_t, traits_t, allocator_t > & separator,
const collection_t & values,
xtd::size index,
xtd::size count ) -> basic_string
inlinestaticnodiscard

Concatenates a specified separator basic_string between each element of a specified Object array, yielding a single concatenated basic_string.

Parameters
separatorA basic_string separator.
valuesAn array of Object.
start_indexThe first array element in value to use.
countThe number of elements of value to use.
Returns
A basic_string consisting of the elements of value interspersed with the separator basic_string.
Remarks
For example if separator is ", " and the elements of value are "red", "blue", "green", and "yellow", Join(separator, value) returns "red, blue, green, yellow".
stream << operator is called on each object to generate the content.

◆ parse()

template<typename char_t, typename traits_t, typename allocator_t>
template<typename value_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::parse ( const basic_string< char_t, traits_t, allocator_t > & str) -> value_t
inlinestaticnodiscard

Converts a basic_string into a value_t type.

Parameters
strAx xtd::basic_string to convert to value_t
Returns
The value_t object parsed.

◆ try_parse()

template<typename char_t, typename traits_t, typename allocator_t>
template<typename value_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::try_parse ( const basic_string< char_t, traits_t, allocator_t > & str,
value_t & value ) -> bool
inlinestaticnoexcept

Try to convert a basic_string into a value_t type.

Parameters
strAn xtd::basic_string to convert to value_t
valueThe value that will contain the parsed xtd::basic_string.
Returns
true if xtd::basic_string:=:try_parse succed; otherwise, false.

◆ operator[]()

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator[] ( xtd::size index) const -> const_reference
inline

Returns a reference to the character at specified location index.

Parameters
indexThe position of the character to return.
Returns
Reference to the requested character.
Exceptions
xtd::index_out_of_range_exceptionIf `index` is not within the range of the string.

◆ operator const base_type &()

template<typename char_t, typename traits_t, typename allocator_t>
xtd::basic_string< char_t, traits_t, allocator_t >::operator const base_type & ( ) const
inlinenoexcept

Returns a reference to the underlying base type.

Returns
Reference to the underlying base type.

◆ operator=() [1/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const basic_string< char > & str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [2/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const basic_string< xtd::char16 > & str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [3/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const basic_string< xtd::char32 > & str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [4/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const basic_string< xtd::char8 > & str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [5/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const basic_string< xtd::wchar > & str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [6/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( basic_string< char > && str) -> basic_string &
inlinenoexcept

Move assignment operator. Replaces the contents with those of other using move semantics (i.e. the data in str is moved from str into this string). str is in a valid but unspecified state afterwards.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [7/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( basic_string< xtd::char16 > && str) -> basic_string &
inlinenoexcept

Move assignment operator. Replaces the contents with those of other using move semantics (i.e. the data in str is moved from str into this string). str is in a valid but unspecified state afterwards.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [8/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( basic_string< xtd::char32 > && str) -> basic_string &
inlinenoexcept

Move assignment operator. Replaces the contents with those of other using move semantics (i.e. the data in str is moved from str into this string). str is in a valid but unspecified state afterwards.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [9/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( basic_string< xtd::char8 > && str) -> basic_string &
inlinenoexcept

Move assignment operator. Replaces the contents with those of other using move semantics (i.e. the data in str is moved from str into this string). str is in a valid but unspecified state afterwards.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [10/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( basic_string< xtd::wchar > && str) -> basic_string &
inlinenoexcept

Move assignment operator. Replaces the contents with those of other using move semantics (i.e. the data in str is moved from str into this string). str is in a valid but unspecified state afterwards.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [11/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const std::basic_string< char > & str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [12/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const std::basic_string< xtd::char16 > & str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [13/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const std::basic_string< xtd::char32 > & str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [14/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const std::basic_string< xtd::char8 > & str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [15/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const std::basic_string< xtd::wchar > & str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [16/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( std::basic_string< char > && str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [17/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( std::basic_string< xtd::char16 > && str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [18/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( std::basic_string< xtd::char32 > && str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [19/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( std::basic_string< xtd::char8 > && str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [20/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( std::basic_string< xtd::wchar > && str) -> basic_string &
inlinenoexcept

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString to use as data source.
Returns
This current instance.

◆ operator=() [21/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const char * str) -> basic_string &
inline

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString litteral pointer to use as data source.
Exceptions
xtd::tring_null_pointer_exceptionThe `str` is null.
Returns
This current instance.

◆ operator=() [22/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const xtd::char16 * str) -> basic_string &
inline

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString litteral pointer to use as data source.
Exceptions
xtd::tring_null_pointer_exceptionThe `str` is null.
Returns
This current instance.

◆ operator=() [23/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const xtd::char32 * str) -> basic_string &
inline

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString litteral pointer to use as data source.
Exceptions
xtd::tring_null_pointer_exceptionThe `str` is null.
Returns
This current instance.

◆ operator=() [24/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const xtd::char8 * str) -> basic_string &
inline

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString litteral pointer to use as data source.
Exceptions
xtd::tring_null_pointer_exceptionThe `str` is null.
Returns
This current instance.

◆ operator=() [25/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const xtd::wchar * str) -> basic_string &
inline

Copy assignment operator. Replaces the contents with a copy of the contents of str.

Parameters
strString litteral pointer to use as data source.
Exceptions
xtd::tring_null_pointer_exceptionThe `str` is null.
Returns
This current instance.

◆ operator=() [26/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( char character) -> basic_string &
inline

Copy assignment operator. Replaces the contents with the specified character.

Parameters
characterThe character to use as data source.
Returns
This current instance.

◆ operator=() [27/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( xtd::char16 character) -> basic_string &
inline

Copy assignment operator. Replaces the contents with the specified character.

Parameters
characterThe character to use as data source.
Returns
This current instance.

◆ operator=() [28/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( xtd::char32 character) -> basic_string &
inline

Copy assignment operator. Replaces the contents with the specified character.

Parameters
characterThe character to use as data source.
Returns
This current instance.

◆ operator=() [29/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( xtd::char8 character) -> basic_string &
inline

Copy assignment operator. Replaces the contents with the specified character.

Parameters
characterThe character to use as data source.
Returns
This current instance.

◆ operator=() [30/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( xtd::wchar character) -> basic_string &
inline

Copy assignment operator. Replaces the contents with the specified character.

Parameters
characterThe character to use as data source.
Returns
This current instance.

◆ operator=() [31/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const std::initializer_list< char > & il) -> basic_string &
inline

Copy assignment operator. Replaces the contents with a copy of the contents of the specified initializer list.

Parameters
ilThe initialiazer list to use as data source.
Returns
This current instance.

◆ operator=() [32/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const std::initializer_list< xtd::char16 > & il) -> basic_string &
inline

Copy assignment operator. Replaces the contents with a copy of the contents of the specified initializer list.

Parameters
ilThe initialiazer list to use as data source.
Returns
This current instance.

◆ operator=() [33/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const std::initializer_list< xtd::char32 > & il) -> basic_string &
inline

Copy assignment operator. Replaces the contents with a copy of the contents of the specified initializer list.

Parameters
ilThe initialiazer list to use as data source.
Returns
This current instance.

◆ operator=() [34/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const std::initializer_list< xtd::char8 > & il) -> basic_string &
inline

Copy assignment operator. Replaces the contents with a copy of the contents of the specified initializer list.

Parameters
ilThe initialiazer list to use as data source.
Returns
This current instance.

◆ operator=() [35/35]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator= ( const std::initializer_list< xtd::wchar > & il) -> basic_string &
inline

Copy assignment operator. Replaces the contents with a copy of the contents of the specified initializer list.

Parameters
ilThe initialiazer list to use as data source.
Returns
This current instance.

◆ operator+=() [1/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const basic_string< char > & str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [2/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const basic_string< xtd::char16 > & str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [3/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const basic_string< xtd::char32 > & str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [4/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const basic_string< xtd::char8 > & str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [5/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const basic_string< xtd::wchar > & str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [6/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( basic_string< char > && str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [7/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( basic_string< xtd::char16 > && str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [8/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( basic_string< xtd::char32 > && str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [9/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( basic_string< xtd::char8 > && str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [10/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( basic_string< xtd::wchar > && str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [11/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const std::basic_string< char > & str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [12/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const std::basic_string< xtd::char16 > & str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [13/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const std::basic_string< xtd::char32 > & str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [14/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const std::basic_string< xtd::char8 > & str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [15/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const std::basic_string< xtd::wchar > & str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [16/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const char * str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [17/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const xtd::char16 * str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [18/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const xtd::char32 * str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [19/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const xtd::char8 * str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [20/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( const xtd::wchar * str) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
strstring to append.
Returns
This current instance with characters added.

◆ operator+=() [21/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( char ch) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
chCharacter value to append.
Returns
This current instance with characters added.

◆ operator+=() [22/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( xtd::char16 ch) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
chCharacter value to append.
Returns
This current instance with characters added.

◆ operator+=() [23/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( xtd::char32 ch) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
chCharacter value to append.
Returns
This current instance with characters added.

◆ operator+=() [24/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( xtd::char8 ch) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
chCharacter value to append.
Returns
This current instance with characters added.

◆ operator+=() [25/25]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::operator+= ( xtd::wchar ch) -> basic_string &
inline

Addition assignment operator. Appends additional characters to the string.

Parameters
chCharacter value to append.
Returns
This current instance with characters added.

◆ is_empty() [2/2]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::is_empty ( ) const -> bool
inlinenodiscardnoexcept

Name Public Deprecated Methods.

Indicates whether this basic_string is an empty basic_string ("").

Returns
true if the value parameter is null or an empty basic_string (""); otherwise, false.
Deprecated
Replaced by xtd::basic_string::is_empty(const xtd::basic_string&) - Will be removed in version 0.4.0.

◆ class_name() [1/3]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename object_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::class_name ( ) -> basic_string
inlinestaticnodiscard

Gets the class name of the object_t.

Returns
The class name of the object_t.
Remarks
For example, the name of the basic_string type is basic_string.
Deprecated
Replaced by typeof_<object_t>().name() - Will be removed in version 0.4.0.

Name Public Deprecated Static Methods

◆ class_name() [2/3]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename object_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::class_name ( const object_t & object) -> basic_string
inlinestaticnodiscard

Gets the class name of the specified object.

Returns
The class name of the specified object.
Remarks
For example, the name of the basic_string type is basic_string.
Deprecated
Replaced by typeof_(object).name() - Will be removed in version 0.4.0.

◆ class_name() [3/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::class_name ( const std::type_info & info) -> basic_string
inlinestaticnodiscard

Gets the class name of the specified object.

Returns
The class name of the specified object.
Remarks
For example, the name of the basic_string type is basic_string.
Deprecated
Replaced by typeof_(info).name() - Will be removed in version 0.4.0.

◆ full_class_name() [1/3]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename object_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::full_class_name ( ) -> basic_string
inlinestaticnodiscard

Gets the fully qualified class name of the objec_t, including the namespace of the objec_t.

Returns
The fully qualified class name of the objec_t, including the namespace of the objec_t.
Remarks
For example, the fully qualified name of the basic_string type is xtd::basic_string.
Deprecated
Replaced by typeof_<object_t>().full_name() - Will be removed in version 0.4.0.

◆ full_class_name() [2/3]

template<typename char_t, typename traits_t, typename allocator_t>
template<typename object_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::full_class_name ( const object_t & object) -> basic_string
inlinestaticnodiscard

Gets the fully qualified class name of the specified object, including the namespace of the specified object.

Returns
The fully qualified class name of the objec_t, including the namespace of the specified object.
Remarks
For example, the fully qualified name of the basic_string type is xtd::basic_string.
Deprecated
Replaced by typeof_(object).full_name() - Will be removed in version 0.4.0.

◆ full_class_name() [3/3]

template<typename char_t, typename traits_t, typename allocator_t>
auto xtd::basic_string< char_t, traits_t, allocator_t >::full_class_name ( const std::type_info & info) -> basic_string
inlinestaticnodiscard

Gets the fully qualified class name of the specified object, including the namespace of the specified object.

Returns
The fully qualified class name of the objec_t, including the namespace of the specified object.
Remarks
For example, the fully qualified name of the basic_string type is xtd::basic_string.
Deprecated
Replaced by typeof_(info).full_name() - Will be removed in version 0.4.0.

Member Data Documentation

◆ empty_string

template<typename char_t, typename traits_t, typename allocator_t>
const basic_string xtd::basic_string< char_t, traits_t, allocator_t >::empty_string
static

Represents the empty basic_string.

Remarks
The value of this method is the zero-length basic_string, "".

◆ npos

template<typename char_t, typename traits_t, typename allocator_t>
size_type xtd::basic_string< char_t, traits_t, allocator_t >::npos
inlinestaticconstexpr

Represents a value that is not a valid position in a collection.

Remarks
This constant is typically used to indicate the absence of an index or a failed search operation. It is equivalent to the maximum value of xtd::size.
Examples
auto str = string {"hello"};
if (str.index_of('g') == str.npos)
console::write_line("Value not found");

◆ bpos

template<typename char_t, typename traits_t, typename allocator_t>
xtd::size xtd::basic_string< char_t, traits_t, allocator_t >::bpos
inlinestaticconstexpr

Represents the index of the first valid element in a collection.

Remarks
Unlike xtd::npos (which means "no position"), xtd::bpos points to the first accessible element of a collection. It is equivalent to 0.
Examples
auto str = string {"hello"};
console::write_line(str[bpos]); // Prints 'h'
console::write_line(str[bpos + 1]); // Prints 'e'
constexpr xtd::size bpos
Represents the index of the firsy valid element in a collection.
Definition bpos.hpp:25

◆ epos

template<typename char_t, typename traits_t, typename allocator_t>
xtd::size xtd::basic_string< char_t, traits_t, allocator_t >::epos
inlinestaticconstexpr

Represents the index of the last valid element in a collection.

Remarks
Unlike xtd::npos (which means "no position"), xtd::epos points to the last accessible element of a collection. It is equivalent to items.count() - 1.
Note
This constant is provided for readability and convenience. For example, items[xtd::epos] directly accesses the last element without manually subtracting one from the collection count.
Remarks
The epos is equivalent to ~1_z. With bitwise operator the code is more concise.
Examples
auto str = string {"hello"};
console::write_line(str[epos]); // Prints 'o'
console::write_line(str[epos - 1]); // Prints 'l'
constexpr xtd::size epos
Represents the index of the last valid element in a collection.
Definition epos.hpp:33
The wollowing exemple shows the same example with bitwise operator as index.
auto str = string {"hello"};
console::write_line(str[~1_z]); // Prints 'o'
console::write_line(str[~2_z]); // Prints 'l'

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