2013-02-12 2 views
-1

Мне нужна помощь в отношении манипуляции с строкой в ​​C#. У меня есть строка в формате [text1 | text2 | text3 | ...]. Я хочу извлечь каждую из строк между разделителями и, возможно, сохранить их в список или что-то похожее. Заранее спасибо.C# получение строк до определенного элемента

ответ

5

Что вам нужно String.Split:

string[] result = inputString.Split(new Char[] {'|'}); 

Хотя

string[] result = inputString.Split('|'); 

будет работать точно так же, как есть один перегрузки символ не отображается в MSDN.

Это даст вам массив строк «text1», «text2», «Text3» и т.д.

Если строка действительно bookended на «[» и «]», и вам нужно будет удалить их как Что ж. Если эти символы не появляются нигде в строке вы можете сделать это в одном вызове:

string[] result = inputString.Split(new Char[] {'|', '[', ']'}, 
            StringSplitOptions.RemoveEmptyEntries); 

Source

В противном случае вам придется обрезать текст:

string[] result = inputString.Trim('[',']').Split('|'); 
+1

'inputString.Split ('|');' работает. Подпись - 'Split (params Char [] separator)'. Нет необходимости в 'new Char [] {}'. – Oded

+0

Но текст начинается с '[' и заканчивается '' '' –

+0

@Oded - я так и думал, но когда я дважды проверял, чтобы убедиться, что я получил профиль правильно, он дал это. – ChrisF

0

Вы должны смотреть на string.Split()

string[] result = "[text1|text2|text3]".Replace("[", "").Replace("]", "").Split('|'); 

Результат массив с 3-х строк:

[0] = "текст1", [1] = "текст1", [2] = "текст1"

3

Вы можете использовать String.Trim (для удаления [ и ]) и string.Split для создания массива:

string[] result = text.Trim('[',']').Split('|'); 
Смежные вопросы