System::String класс

String class

String class used across the library. Is a substitute for C# System.String when translating code. For optimization reasons, isn’t considered an Object subclass. This type should be allocated on stack and passed to functions by value or by reference. Never use System::SmartPtr class to manage objects of this type.

class String

Методы

МетодОписание
ASPOSECPP_VALUE_TYPE_IMPLEMENTS_INTERFACES()String является типом‑значением на стороне C++, который неявно (без наследования) реализует некоторые интерфейсы.
begin() constВозвращает указатель на начало фактического буфера строки. Никогда ничего не переаллоцирует. Не гарантирует, что буфер будет завершён нулём.
Clone() constСоздаёт копию текущей строки.
static Compare(const String&, int, const String&, int, int, bool)Less-equal-greater сравнивает две подстроки.
static Compare(const String&, int, const String&, int, int, bool, const SharedPtr<System::Globalization::CultureInfo>&)Less-equal-greater сравнивает две подстроки.
static Compare(const String&, const String&, System::StringComparison)Less-equal-greater сравнивает две строки.
static Compare(const String&, int, const String&, int, int, System::StringComparison)Less-equal-greater сравнивает две строки.
static Compare(const String&, const String&, bool)Less-equal-greater сравнивает две строки.
static Compare(const String&, const String&, bool, const SharedPtr<System::Globalization::CultureInfo>&)Less-equal-greater сравнивает две строки.
static CompareOrdinal(const String&, const String&)Less-equal-greater сравнивает две строки, используя ординальный режим.
static CompareOrdinal(const String&, int, const String&, int, int)Less-equal-greater сравнивает две строки, используя ординальный режим.
CompareTo(const String&) constСравнивает две строки в стиле ’less-equals-more’. Использует текущую культуру.
static Concat(const ArrayPtr<String>&)Конкатенирует строки.
static Concat(const String&, const String&)Конкатенирует строки.
static Concat(const String&, const String&, const String&)Конкатенирует строки.
static Concat(const String&, const String&, const String&, const String&)Конкатенирует строки.
Contains(const String&) constПроверяет, является ли str подстрокой текущей строки.
Contains(char16_t) constПроверяет, содержит ли строка заданный символ.
static Copy(const String&)Создаёт копию строки.
CopyTo(int, const ArrayPtr<char_t>&, int, int) constКопирует символы строки в существующие элементы массива. Изменение размера не выполняется.
end() constВозвращает указатель на конец фактического буфера строки. Никогда не переаллоцирует ничего. Не гарантирует, что буфер завершается нулём.
EndsWith(const String&) constПроверяет, заканчивается ли строка указанной подстрокой.
EndsWith(const String&, System::StringComparison) constПроверяет, заканчивается ли строка указанной подстрокой.
EndsWith(const String&, bool, const SharedPtr<System::Globalization::CultureInfo>&) constПроверяет, заканчивается ли строка указанной подстрокой.
Equals(const String&, System::StringComparison) constString сравнение на равенство. Поддерживаются несколько режимов, предоставляемых перечислением StringComparison.
Equals(const String&) constString сравнение на равенство. Использует режим сравнения System::StringComparison::Ordinal.
static Equals(const String&, const String&)Equal сравнивает две строки, используя режим сравнения Ordial.
static Equals(const String&, const String&, System::StringComparison)Equal сравнивает две строки.
FastToAscii(char, int) constПытается преобразовать String в ASCII‑строку.
static Format(const SharedPtr<IFormatProvider>&, const String&, const Args&…)Форматирует строку в стиле C#.
static Format(std::nullptr_t, const String&, const Args&…)Форматирует строку в стиле C#.
static Format(std::nullptr_t, const char16_t(&), const Args&…)Форматирует строку в стиле C#.
static Format(const String&, const Args&…)Форматирует строку в стиле C#.
static Format(const String&, const System::ArrayPtr<T>&)Форматирует строку в стиле C#.
static FromAscii(const char *)Создаёт String из ASCII‑строки.
static FromAscii(const char *, int)Создаёт String из ASCII‑строки.
static FromAscii(const std::string&)Создаёт String из ASCII‑строки.
static FromUtf16(const std::u16string&)Создаёт String из строки utf16.
static FromUtf32(const uint32_t *, int32_t)Создаёт String из строки utf32.
static FromUtf8(const char *)Создаёт String из строки utf8.
static FromUtf8(const char *, int)Создаёт String из строки utf8.
static FromUtf8(const uint8_t *)Создаёт String из строки utf8.
static FromUtf8(const std::string&)Создаёт String из строки utf8.
static FromWCS(const std::wstring&)Создаёт String из widestring.
get_Length() constПолучает длину строки.
GetHashCode() constХеширует содержащуюся строку. Реализовано в ICU, не совпадает с хешами в C#.
IndexOf(const String&, System::StringComparison) constПрямой поиск подстроки.
IndexOf(char_t, int) constПоиск символа вперёд.
IndexOf(char_t, int, int) constПоиск символа вперёд в подстроке.
IndexOf(const String&, int) constПрямой поиск подстроки.
IndexOf(const String&, int, System::StringComparison) constПрямой поиск подстроки.
IndexOf(const String&, int, int, System::StringComparison) constПрямой поиск подстроки.
IndexOf(const String&, int, int) constПрямой поиск подстроки.
IndexOfAny(char_t, int) constПоиск символа вперёд.
IndexOfAny(const String&, int) constСоответственно ищет все символы строки str в этом объекте. Если найден первый символ, возвращается его позиция, иначе ищется второй и так далее.
IndexOfAny(const ArrayPtr<char_t>&) constИщет любой из переданных символов во всей строке. Сравнивает первый символ строки со всеми символами в anyOf, затем сравнивает второй и так далее. Возвращает индекс первого символа, соответствующего любому из целевых символов.
IndexOfAny(const ArrayPtr<char_t>&, int32_t) constИщет любой из переданных символов в подстроке. Сравнивает первый символ строки со всеми символами в anyOf, затем сравнивает второй и так далее. Возвращает индекс первого символа, соответствующего любому из целевых символов.
IndexOfAny(const ArrayPtr<char_t>&, int32_t, int32_t) constИщет любой из переданных символов в подстроке. Сравнивает первый символ строки со всеми символами в anyOf, затем сравнивает второй и так далее. Возвращает индекс первого символа, соответствующего любому из целевых символов.
Insert(int, const String&) constВставляет подстроку в указанную позицию.
Is(const System::TypeInfo&) constПроверяет, является ли объект строки типом, указанным в переданном TypeInfo.
IsAsciiString() constУказывает, содержит ли String только ASCII‑символы.
IsEmpty() constПроверяет, что строка не null и пуста.
IsNormalized(System::Text::NormalizationForm) constПроверяет, нормализована ли Unicode‑строка с использованием указанной формы нормализации.
IsNull() constПроверяет, считается ли строка null. String считается null только в том случае, если она создана через конструктор String(), перемещена, скопирована или присвоена из null‑строки, либо был вызван метод reset().
IsNullOrEmpty() constПроверяет, пуста ли строка или считается null.
static IsNullOrEmpty(const String&)Проверяет, является ли переданная строка null или пуста.
static IsNullOrWhiteSpace(const String&)Указывает, является ли указанная строка null, пуста или состоит только из пробельных символов.
static Join(const String&, const ArrayPtr<String>&, int, int)Объединяет массив, используя строку в качестве разделителя.
static Join(const String&, const System::Details::ArrayView<String>&, int, int)Объединяет массив, используя строку в качестве разделителя.
static Join(const String&, const SharedPtr<System::Collections::Generic::IEnumerable<String>>&)Объединяет массив, используя строку в качестве разделителя.
static Join(const String&, const ArrayPtr<SharedPtr<Object>>&)Объединяет массив, используя строку в качестве разделителя.
LastIndexOf(const String&, int) constОбратный поиск подстроки.
LastIndexOf(const String&, System::StringComparison) constОбратный поиск подстроки.
LastIndexOf(const String&, int, System::StringComparison) constОбратный поиск подстроки.
LastIndexOf(const String&, int, int, StringComparison) constОбратный поиск подстроки.
LastIndexOf(char_t) constОбратный поиск символа.
LastIndexOf(char_t, int32_t) constОбратный поиск символа.
LastIndexOf(char_t, int32_t, int32_t) constОбратный поиск символа.
LastIndexOfAny(const ArrayPtr<char_t>&) constИщет любой из переданных символов во всей строке в обратном порядке. Сравнивает последний символ строки со всеми символами в anyOf, затем сравнивает предыдущий и так далее. Возвращает индекс первого найденного совпадения.
LastIndexOfAny(const ArrayPtr<char_t>&, int32_t) constИщет любой из переданных символов в подстроке в обратном порядке. Сравнивает последний символ строки со всеми символами в anyOf, затем сравнивает предыдущий и так далее. Возвращает индекс первого найденного совпадения.
LastIndexOfAny(const ArrayPtr<char_t>&, int32_t, int32_t) constИщет любой из переданных символов в подстроке в обратном порядке. Сравнивает последний символ строки со всеми символами в anyOf, затем сравнивает предыдущий и так далее. Возвращает индекс первого найденного совпадения.
Normalize(System::Text::NormalizationForm) constНормализует Unicode‑строку с использованием указанной формы нормализации.
operator!=(const String&) constОператор сравнения на неравенство.
operator!=(std::nullptr_t) constПроверяет, что строка не null. Применяет ту же логику, что и вызов IsNull().
operator+(const String&) constОператор конкатенации String.
operator+(const T&) constКонкатенация String со строковым литералом или указателем на строку символов.
operator+(char_t) constДобавляет символ в конец строки.
operator+(int) constДобавляет строковое представление целочисленного значения в конец строки.
operator+(uint32_t) constДобавляет строковое представление беззнакового целого значения в конец строки.
operator+(double) constДобавляет строковое представление числа с плавающей точкой в конец строки.
operator+(int64_t) constДобавляет строковое представление целочисленного значения в конец строки.
operator+(const T&) constДобавляет строковое представление объекта ссылочного типа в конец строки.
operator+(const T&) constДобавляет строковое представление объекта ссылочного типа в конец строки.
operator+(T) constДобавляет строковое представление логического значения в конец строки.
operator+=(char_t)Оператор присваивания с конкатенацией.
operator+=(const String&)Оператор присваивания с конкатенацией.
operator+=(double)Оператор присваивания с конкатенацией.
operator+=(uint8_t)Оператор присваивания с конкатенацией.
operator+=(int16_t)Оператор присваивания с конкатенацией.
operator+=(uint16_t)Оператор присваивания с конкатенацией.
operator+=(int32_t)Оператор присваивания с конкатенацией.
operator+=(uint32_t)Оператор присваивания с конкатенацией.
operator+=(int64_t)Оператор присваивания с конкатенацией.
operator+=(uint64_t)Оператор присваивания с конкатенацией.
operator+=(T)Оператор присваивания с конкатенацией.
operator<(const String&) constСравнивает строки по порядку.
operator=(const String&)Оператор присваивания.
operator=(String&&)Оператор перемещающего присваивания.
operator==(const String&) constОператор сравнения на равенство.
operator==(std::nullptr_t) constПроверяет, является ли строка null. Применяет ту же логику, что и вызов IsNull().
operator>(const String&) constСравнивает строки по порядку.
operator[](int) constПолучает символ в указанной позиции.
PadLeft(int, char_t) constДобавляет отступ слева от исходной строки.
PadRight(int, char_t) constДобавляет отступ справа от исходной строки.
rbegin() constВозвращает обратный итератор к последнему символу (если есть) фактического буфера строки.
Remove(int32_t, int32_t) constИзвлекает всё, кроме подстроки, из текущей строки.
rend() constВозвращает обратный итератор к позиции перед первым символом (если есть) фактического буфера строки.
Replace(char_t, char_t) constЗаменяет все вхождения символа в строке.
Replace(const String&, const String&) constЗаменяет все вхождения искомого значения в этой строке.
reset()Устанавливает строку в null. Аналогично выражению ‘string_variable_name = null’ в C#.
SetCharAt(int, char_t)Устанавливает символ в указанной позиции.
Split(char_t, StringSplitOptions) constРазделяет строку по символу.
Split(char_t, int32_t, StringSplitOptions) constРазделяет строку по символу.
Split(char_t, char_t, StringSplitOptions) constРазделяет строку по одному из двух символов.
Split(const ArrayPtr<char_t>&, StringSplitOptions) constРазделяет строку по одному из указанных символов.
Split(const ArrayPtr<char_t>&, int32_t, StringSplitOptions) constРазделяет строку по одному из указанных символов.
Split(const String&, StringSplitOptions) constРазделяет строку по подстроке.
Split(const String&, int, StringSplitOptions) constРазделяет строку по подстроке.
Split(const ArrayPtr<String>&, StringSplitOptions) constРазделяет строку по подстроке.
Split(const ArrayPtr<String>&, int, StringSplitOptions) constРазбивает строку по подстроке. В настоящее время поддерживается массив разделителей из нуля или одного элемента.
StartsWith(const String&) constПроверяет, начинается ли строка с указанной подстроки.
StartsWith(const String&, System::StringComparison) constПроверяет, начинается ли строка с указанной подстроки.
StartsWith(const String&, bool, const SharedPtr<System::Globalization::CultureInfo>&) constПроверяет, начинается ли строка с указанной подстроки.
String()Конструктор по умолчанию. Создаёт объект строки, считающийся null.
String(T&, typename std::enable_if<IsStringLiteral<T, char16_t>::value>::type *)Создаёт строку на основе строкового литерала. Считает литерал нуль-терминированной строкой, вычисляет длину целевой строки на основе размера литерала.
String(const T&, typename std::enable_if<IsStringPointer<T, char16_t>::value>::type *)Создаёт строку на основе указателя на символьную строку. Рассматривает указанную строку как нуль-терминированную, вычисляет длину целевой строки по нулевому символу.
explicit String(T&, typename std::enable_if<IsStringLiteral<T, char>::value>::type *)Создаёт строку на основе строкового литерала. Считает литерал нуль-терминированной строкой в UTF8, вычисляет длину целевой строки на основе размера литерала.
explicit String(const T&, typename std::enable_if<IsStringPointer<T, char>::value>::type *)Создаёт строку на основе указателя на символьную строку. Рассматривает указанную строку как нуль-терминированную в UTF8, вычисляет длину целевой строки по нулевому символу.
String(const char16_t *, int)Создаёт строку из указателя на символьную строку и явной длины.
String(const char *, int)Создаёт строку из указателя на символьную строку и явной длины.
String(const char16_t *, int, int)Создаёт строку из указателя на символьную строку, начиная с позиции, используя длину.
explicit String(const char16_t, int)Конструктор заполнения.
String(const T&, typename std::enable_if<std::is_same<T, std::nullptr_t>::value>::type *)Конструктор nullptr. Объявлен как шаблон для разрешения приоритетов с другими шаблонными конструкторами.
explicit String(T&, typename std::enable_if<IsStringLiteral<T, wchar_t>::value>::type *)Создаёт строку на основе широкого строкового литерала. Считает литерал нуль-терминированной строкой, вычисляет длину целевой строки на основе размера литерала. Преобразование из wchar_t занимает много времени на некоторых платформах, поэтому не допускаются неявные преобразования.
explicit String(const T&, typename std::enable_if<IsStringPointer<T, wchar_t>::value>::type *)Создаёт строку на основе указателя на широкую символьную строку. Рассматривает указанную строку как нуль-терминированную, вычисляет длину целевой строки по нулевому символу. Преобразование из wchar_t занимает много времени на некоторых платформах, поэтому не допускаются неявные преобразования.
explicit String(const wchar_t *, int)Создаёт строку из указателя на широкую символьную строку и явной длины. Преобразование из wchar_t занимает много времени на некоторых платформах, поэтому не допускаются неявные преобразования.
explicit String(const wchar_t, int)Конструктор заполнения. Преобразование из wchar_t занимает много времени на некоторых платформах, поэтому не допускаются неявные преобразования.
String(const String&)Конструктор копирования.
String(String&&)Конструктор перемещения.
String(const ArrayPtr<char16_t>&)Преобразует весь массив символов в строку.
String(const ArrayPtr<char16_t>&, int, int)Преобразует поддиапазон массива символов в строку. Если параметры выходят за границы массива, создаётся пустая строка.
explicit String(const codeporting_icu::UnicodeString&)Оборачивает UnicodeString в String.
explicit String(codeporting_icu::UnicodeString&&)Конструктор перемещения.
explicit String(const std::wstring&)Создаёт String из widestring.
explicit String(const std::u16string&)Создаёт String из строки utf16.
explicit String(const std::string&)Создаёт String из строки std::string, представленной в формате UTF-8.
explicit String(const std::u32string&)Создаёт String из строки std::u32string.
Substring(int32_t) constИзвлекает подстроку.
Substring(int32_t, int32_t) constИзвлекает подстроку.
ToAsciiString() constПреобразует строку в std::string. Использует кодировку ASCII.
ToByteArray(int32_t, int32_t, bool) constПреобразует строку или подстроку в массив байтов.
ToCharArray(int32_t, int32_t) constПреобразует строку или подстроку в массив символов.
ToLower() constПреобразует все символы строки в нижний регистр.
ToLower(const SharedPtr<System::Globalization::CultureInfo>&) constПреобразует все символы строки в нижний регистр, используя определённую культуру.
ToLowerInvariant() constПреобразует все символы строки в нижний регистр, используя инвариантную культуру.
ToString() constОбёртка для работы с классом String в контекстах, где вызывается ToString() для объектов значимых типов.
ToString(const SharedPtr<IFormatProvider>&) constОбёртка для работы с классом String в контекстах, где вызывается ToString() для объектов значимых типов.
ToU16Str() constПреобразует строку в std::u16string.
ToU32Str() constПреобразует строку в std::u32string.
ToUpper() constПреобразует все символы строки в верхний регистр.
ToUpper(const SharedPtr<System::Globalization::CultureInfo>&) constПреобразует все символы строки в верхний регистр, используя определённую культуру.
ToUpperInvariant() constПреобразует все символы строки в верхний регистр, используя инвариантную культуру.
ToUtf8String() constПреобразует строку в std::string. Использует кодировку UTF-8.
ToWCS() constПреобразует строку в std::wstring.
Trim() constУдаляет все пробельные символы как в начале, так и в конце строки.
Trim(char_t) constУдаляет все вхождения переданного символа как в начале, так и в конце строки.
Trim(const String&) constУдаляет все вхождения переданных символов как в начале, так и в конце строки.
Trim(const ArrayPtr<char_t>&) constУдаляет все вхождения переданных символов как в начале, так и в конце строки.
TrimEnd() constУдаляет все пробельные символы в конце строки.
TrimEnd(char_t) constУдаляет все вхождения переданного символа в конце строки.
TrimEnd(const String&) constУдаляет все вхождения переданных символов в конце строки.
TrimEnd(const ArrayPtr<char_t>&) constУдаляет все вхождения переданных символов в конце строки.
TrimStart() constУдаляет все пробельные символы в начале строки.
TrimStart(char_t) constУдаляет все вхождения переданного символа в начале строки.
TrimStart(const String&) constУдаляет все вхождения переданных символов в начале строки.
TrimStart(const ArrayPtr<char_t>&) constУдаляет все вхождения переданных символов в начале строки.
u_str() constВозвращает буфер, нуль‑терминированный в стиле ICU. Может переаллочировать строку.
~String()Деструктор.

Поля

ПолеОписание
static EmptyПустая строка.
static NullНулевая строка.

Typedefs

Определение типаОписание
reverse_iteratorТип обратного итератора.

Примечания

#include "system/string.h"
#include <iostream>

int main()
{
  // Создайте строку из массива символов и выведите её.
  const auto chars = {u'h', u'e', u'l', u'l', u'o'};
  const System::String string1(chars);
  std::cout << string1 << std::endl;

  // Создайте строку из массива байтов и выведите её.
  const uint8_t bytes[] = {0x77, 0x6f, 0x72, 0x6c, 0x64, 0x0};
  const auto string2 = System::String::FromUtf8(bytes);
  std::cout << string2 << std::endl;

  // Обрежьте строку ниже и выведите её.
  const System::String string3(u"   This string contains whitespaces in the beginning and at the end.   ");
  std::cout << '"' << string3.Trim() << '"' << std::endl;

  // Выведите количество слов в .
  std::cout << "Number of words: " << string3.Trim().Split(' ')->get_Length() << std::endl;

  return 0;
}
/*
This code example produces the following output:
hello
world
"This string contains whitespaces in the beginning and at the end."
Number of words: 11
*/

См. также