2014-02-03 4 views
18

Как разбить строку C# на основе первого вхождения указанного символа? Предположим, что у меня есть строка со значением «101, a, b, c, d». Я хочу разбить его как 101 & a, b, c, d. То есть по первому вступлению запятой.Разделить строку на основе первого вхождения символа

ответ

42

Вы можете указать, сколько подстрок вернуться с помощью string.Split:

var pieces = myString.Split(new[] { ',' }, 2); 

Возвраты:

101 
a,b,c,d 
2

Использование string.Split() функция. Требуется макс. количество кусков, которые оно создаст. Скажем, у вас есть строка «abc, def, ghi», и вы вызываете Split() на нее с параметром count, установленным в 2, он создаст два куска «abc» и «def, ghi».

9
string s = "101,a,b,c,d"; 
int index = s.IndexOf(','); 
string first = s.Substring(0, index); 
string second = s.Substring(index + 1); 
+0

Почему downvote? – pcnThird

+2

@pcnТребует, что я не спускал вниз, но, вероятно, потому, что это просто код без объяснения используемого метода. –

+0

@pcnТребуется, не знаю, хотя я считаю, что ответ Грант Винни лучший. –

4

Вы можете использовать Substring, чтобы обе части отдельно.

Во-первых, вы используете IndexOf, чтобы получить позицию первой запятой, то вы разделяете его:

string input = "101,a,b,c,d"; 
int firstCommaIndex = input.IndexOf(','); 

string firstPart = input.Substring(0, firstCommaIndex); //101 
string secondPart = input.Substring(firstCommaIndex + 1); //a,b,c,d 

На второй части +1, чтобы избежать в том числе запятой.

Смежные вопросы