Как разделить строку по массиву строк-разделителей?

103
12 января 2021, 01:20

Есть массив из элементов:

string[] OkElems = {"+","-","*","/","mod","div" };

И есть некая строка x. Как разделить строку x по любому из элементов OkElems?

Пробовал Split(OkElems), но так не работает:

var x = "5+6*2-1/4"; 
string[] okElems = { "+","-","*","/","mod","div" }; 
var splitedArr = x.Split(okElems); 

Ошибка в том что Split не умеет работать с массивом строк. Массив символов, ок, а вот строк, не ахти.

Можно ли как то красиво это сделать, не прибегая к деревянному перебору?

Answer 1

Попробуйте Split(String[], StringSplitOptions) так должно сработать:

var x = "5+6*2-1/4"; 
string[] okElems = { "+","-","*","/","mod","div" }; 
var splitedArr = x.Split(okElems, StringSplitOptions.None);
foreach(var part in splitedArr)
{
    Console.WriteLine(part); //5 6 2 1 4 
}

Просто в перегрузке метода, принимающей массив строк, объявлен второй аргумент (StringSplitOptions). Если при разбиении нужно удалять пустые строки проставьте StringSplitOptions.RemoveEmptyEntries, если нет, то оставьте StringSplitOptions.None.

READ ALSO
Добавление данных в БД из DTO

Добавление данных в БД из DTO

У меня есть класы entities для представление данных в БД и соответствующие DTO для передачи данных между слоями приложения

107
PHP. Как правильно отправить POSTFIELDS в cURL

PHP. Как правильно отправить POSTFIELDS в cURL

Мне нужно отправить данные POST через cURL как показано на картинке

112
По какому принципу работают (int) и intval?

По какому принципу работают (int) и intval?

В документации указано, что максимальное знаковое целое число для функции 9223372036854775807

116
Проблема с почтой после переезда сайта

Проблема с почтой после переезда сайта

После переезда на новый сервер перестала отправляться почта

128