Как я могу разделить строку С# на основе первого вхождения указанного символа? Предположим, что у меня есть строка со значением "101, a, b, c, d". Я хочу разбить его на 101 и a, b, c, d. То есть при первом вводе запятой.
Разделить строку на основе первого появления символа
Ответ 1
Вы можете указать количество подстрок, возвращаемых с помощью string.Split
:
var pieces = myString.Split(new[] { ',' }, 2);
Возврат:
101
a,b,c,d
Ответ 2
string s = "101,a,b,c,d";
int index = s.IndexOf(',');
string first = s.Substring(0, index);
string second = s.Substring(index + 1);
Ответ 3
Вы можете использовать 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
следует избегать включения запятой.
Ответ 4
Используйте функцию string.Split()
. Требуется макс. количество кусков, которые оно создаст. Скажем, у вас есть строка "abc, def, ghi", и вы вызываете Split() на нее с параметром count
, установленным в 2, он создаст две части "abc" и "def, ghi".