@flash661

Что будет если после разделителя идет следующий разделитель в c# в методе split?

У меня есть массив разделителей. И строка в которой 2 разделителя идут подряд. Почему он мне выводит 2 пробела?
char[] separators = new char[] {','};
string str = "2,,";
string[] outp = str.Split(separators);
Console.WriteLine(outp.Length);
 for (int i = 0; i < outp.Length; i++)
{
       Console.WriteLine(outp[i]);
 }

можете пожалуйста поподробнее объяснить как работает split. Я знаю как избавиться от пробелов, но почему выводится именно пробел, а не условно "," . В случае когда разделителем является пробел и дальше идет еще 1 пробел, я еще понимаю почему выводится пробел, а вот в данной ситуации не совсем.
  • Вопрос задан
  • 120 просмотров
Решения вопроса 2
@Voland69
Ваш пример в .NET 5 работает корректно: возвращает 2 и две пустых строки (см. свойство Length), то есть никаких пробелов нет.
Ответ написан
Комментировать
@Ksarrik
В вашем случае, в массив попадают не пробелы, а пустые строки одна между запятыми и вторая между между второй запятой и концом строки. Попробуйте заменить на
string[] outp = str.Split(separators, StringSplitOptions.RemoveEmptyEntries);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы