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

Методы

МетодОписание
begin() constВозвращает указатель на начало фактического буфера строки. Никогда ничего не переаллочирует. Не гарантирует, что буфер будет нуль-терминирован.
Clone() constСоздаёт копию текущей строки.
static Compare(const String&, int, const String&, int, int, bool)Less-equal-greater-compares два подстрока.
static Compare(const String&, int, const String&, int, int, bool, const SharedPtr<System::Globalization::CultureInfo>&)Less-equal-greater-compares два подстрока.
static Compare(const String&, const String&, System::StringComparison)Less-equal-greater-compares два строки.
static Compare(const String&, int, const String&, int, int, System::StringComparison)Less-equal-greater-compares два строки.
static Compare(const String&, const String&, bool)Less-equal-greater-compares два строки.
static Compare(const String&, const String&, bool, const SharedPtr<System::Globalization::CultureInfo>&)Less-equal-greater-compares два строки.
static CompareOrdinal(const String&, const String&)Less-equal-greater-compares два строки с использованием ординального режима.
static CompareOrdinal(const String&, int, const String&, int, int)Less-equal-greater-compares два строки с использованием ординального режима.
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&)Сравнивает два строки на равенство, используя режим сравнения Ordial.
static Equals(const String&, const String&, System::StringComparison)Сравнивает два строки на равенство.
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 ReadOnlySpan< char16_t >() constПреобразует строку в неизменяемый span.
operator!=(const String&) constОператор сравнения на неравенство.
operator!=(std::nullptr_t) constПроверяет, что строка не null. Применяет ту же логику, что и вызов IsNull().
operator+(const String&) constString оператор конкатенации.
operator+(const T&) constString конкатенация со строковым литералом или указателем на строку символов.
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Заменяет все вхождения lookup в этой строке.
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 ReadOnlySpan<char16_t>&)Инициализирует новый экземпляр класса System.String Unicode‑символами, указанными в заданном только для чтения span.
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
*/

См. также