Split где отсутствует одно из значений

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 100
Благодарностей
129
Баллы
63
Строка с данными:
1||2|3

Как сплит должен реагировать на отсутствие одного из значений?
a=1
b=
c=2
d=3
Мне нужно, чтобы в "b" ничего не было
 

SHILY

Client
Регистрация
05.06.2016
Сообщения
258
Благодарностей
306
Баллы
63
Как вариант, если тебе нужно без ошибок:
C#:
//Объявляем переменные
string str, a, b, c, d;

str = "1||2|3";

//Раскидываем по переменным
a = !String.IsNullOrEmpty(str.Split('|')[0]) ? str.Split('|')[0] : "";
b = !String.IsNullOrEmpty(str.Split('|')[1]) ? str.Split('|')[1] : "";
c = !String.IsNullOrEmpty(str.Split('|')[2]) ? str.Split('|')[2] : "";
d = !String.IsNullOrEmpty(str.Split('|')[3]) ? str.Split('|')[3] : "";

//Лог (не обязательно)
project.SendInfoToLog(String.Format("a = {0} | b = {1} | c = {2} | d = {3}", a, b, c, d));
 
Последнее редактирование:
  • Спасибо
Реакции: bizzon

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 421
Баллы
113
C#:
string split = "1||2|3|||4|5|6||w|D|t|xd|sfsdfg|s345f|#";
string result = "";
if(split.Split('|').Count() < 26){
    for(int i = 0; i < split.Split('|').Count(); i++)
        if(!string.IsNullOrEmpty(split.Split('|')[i]))//закомментировать эту строку, если надо получить и пустые значения
            result += ((char)(97 + i)).ToString() + " = " + split.Split('|')[i] +"\n";
    return result;
}
else throw new Exception("Too many SPLIT values in string \"split\"");
Выполнение кода C# Результат: a = 1
c = 2
d = 3
g = 4
h = 5
i = 6
k = w
l = D
m = t
n = xd
o = sfsdfg
p = s345f
q = #
 
  • Спасибо
Реакции: SHILY

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 120
Благодарностей
8 983
Баллы
113
Строка с данными:
1||2|3

Как сплит должен реагировать на отсутствие одного из значений?
a=1
b=
c=2
d=3
Мне нужно, чтобы в "b" ничего не было
В стандартном кубике "Обработка текста - Split" можно установить галку "Разрешить пустые значения", если предполагается, что некоторые поля между разделителями могут быть пустыми.

65193
 
  • Спасибо
Реакции: SHILY и doc

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)