Руководство пользователя

Работа со строками
NetTradeX PC
NetTradeX Android
NetTradeX iOS
NetTradeX Mobile
NetTradeX Advisors
Работа со строками

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

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

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

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);
}