Подтвердить что ты не робот

С#: разделение строки и отсутствие пустой строки

У меня есть строка:

a = "1;2;3;"

И я хотел бы split так:

foreach (string b in a.split(';'))

Как я могу убедиться, что я возвращаю только 1, 2, 3, а не "пустую строку"?

Если я раскол 1;2;3, тогда я получу то, что хочу. Но если я разделяю 1;2;3;, то получаю дополнительную "пустую строку". Я принял предложения и сделал это:

string[] batchstring = batch_idTextBox.Text.Split(';', StringSplitOptions.RemoveEmptyEntries);

Однако я получаю следующие ошибки:

Ошибка 1 Наилучшее перегруженное соответствие метода для 'string.Split(params char []) 'имеет некоторые недопустимые аргументы C:\Documents and Настройки\agordon\Мои документы \Visual Studio 2008\Projects\lomdb\EnterData\DataEntry\DAL.cs 18 36 EnterData​​p >

Ошибка 2 Аргумент '2': невозможно преобразовать из 'System.StringSplitOptions' to 'char' C:\Documents and Settings\agordon\Мои документы \Visual Studio 2008\Projects\lomdb\EnterData\DataEntry\DAL.cs 18 68 EnterData​​p >

4b9b3361

Ответ 1

String.Split принимает массив при включении любого StringSplitOptions:

string[] batchstring = batch_idTextBox.Text.Split(new [] { ';' }, StringSplitOptions.RemoveEmptyEntries);

Если вам не нужны параметры, синтаксис становится проще:

string[] batchstring = batch_idTextBox.Text.Split(';');

Ответ 2

Используйте StringSplitOptions.

a.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries);

Ответ 3

Передайте StringSplitOptions.RemoveEmptyEntries методу Split.

ИЗМЕНИТЬ

Метод Split не имеет перегрузки для разбиения на один символ. Вам нужно указать массив символов.

foo.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries);

Ответ 4

Сделайте снимок:

string test = "1;2;3;";
test = String.Join(",", test.TrimEnd((char)59).Split((char)59));

string test = "1;2;3;";
test = String.Join(",", test.TrimEnd(';').Split(';'));

Ответ 5

Не знаю о параметрах split. Если у вас не было этого, вы могли бы...

a.Split(';').Where(s => s.Length > 0).ToArray();

Ответ 6

Используйте

a.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);

Есть 4 перегрузки .Split, два из них не поддерживают StringSplitOptions и используют формат params (так что вам не нужно создавать массив сплиттеров), два из них поддерживают StringSplitOptions и требуется массив из char или string.

Ответ 7

string line="Hello! Have nice day."
string[] substr = line.Split(new[] {' '}, 2);

Выше кода разделит строку на две подстроки на основе первого пространства. substr [0] будет иметь "Hello!" substr [1] будет иметь "Хороший день". Здесь 2 в Split - это целочисленный счетчик, вы можете передать любое значение на основе вашего требования.