img

Работа со строками

Операторы для работы со строками

ОперацияОписание
= Присваивание строки
+ Конкатенация строк
== Проверка строк на равенство
!= Проверка строк на неравенство
<, >, <=, >= Операции сравнения строк
[] Доступ к элементам строки по индексу

Пример. Выведем все символы строки.

 int Initialize() { return(0); } int Run() { string a = "NetTradeX"; for (uint i=0;i<a.length;i++) { System.Print(""+int8(a[i])); } return(0); } int DeInitialize() { return(0); } 

Методы работы со строками

МетодОписание
uint length() const Получение длины строки
void resize(uint) Изменение длины строки
bool isEmpty() const Проверка того, что строка пустая
string substr(uint start = 0, int count = -1) const; Выделение подстроки, начиная с позиции start и длиной count символов.
int findFirst(const string &in str, uint start = 0) const; Поиск первого вхождения подстроки str, начиная с позиции start.
int findLast(const string &in str, int start = -1) const; Поиск последнего вхождения подстроки str не далее, чем start символов от начала.
array@ split(const string &in delimiter) const; Разбиение строки на подстроки, которые записываются в массив.

Пример работы с методами строки:

 int Initialize() { return(0); } int Run() { string a = "Hello, NetTradex Advisor!"; System.Print("Substring = "+a.substr(3,10)); // Выведется Substring = lo, NetTra System.Print("Find substring \"tT\" pos = "+a.findFirst("tT",1)); // Выведется Find substring "tT" pos = 9 System.Print("Find last = "+a.findLast("o",6)); // Выведется Find last = 4 array<string>words = a.split(" "); for(uint i=0;i<words.length();i++) { System.Print(words[i]); } System.Print("Joined="+join(words," ")); return 0; } int DeInitialize() { return(0); } 

Функции для работы со строками

Название функцииОписание
string join(const array &in arr, const string &in delimiter); Соединение элементов массива arr с добавлением между элементами символов, указанных в delimiter.
int64 parseInt(const string &in, uint base = 10, uint &out byteCount = 0) Преобразование строки к типу int64
double parseFloat(const string &in, uint &out byteCount = 0) Преобразование строки к типу double
string formatInt(int64 val, const string &in options, uint width = 0) Преобразование числа int64 в строку с использованием указанного формата*.
string formatFloat(double val, const string &in options, uint width = 0, uint precision = 0) Преобразование числа double в строку с использованием указанного формата*.

* Флаги для указания формата строки

  • l - выравнивание по левому краю
  • 0 - дополнить слева нулями
  • + - добавить + для положительных чисел
  • пробел - добавить слева пробел для положительных чисел
  • h - использовать строчные буквы при выводе в шестнадцатеричном формате
  • H - использовать прописные буквы при выводе в шестнадцатеричном формате
  • e - использовать строчный символ "e" для экспоненты
  • E - использовать прописной символ "E" для экспоненты

Пример 1. Демонстрация использования функций formatInt и formatFloat:

 int Initialize() { return(0); } int Run() { System.Print(""+formatInt(1245,"0+", 10)); // выведется +000001245 System.Print(""+formatInt(0xAbCd,"lH", 10)); // выведется ABCD System.Print(""+formatFloat(1234567,"E",10,4)); // 1.2346E+006 return(0); } int DeInitialize() { return(0); } 

Пример 2. Преобразуем строку в число:

 int Initialize() { return(0); } int Run() { uint a; System.Print(""+parseInt("12345678",10,a)); System.Print("a="+a); return(0); } int DeInitialize() { return(0); }