web-dev-qa-db-ja.com

文字の最初の出現に基づいて文字列を分割します

指定した文字の最初の出現に基づいてC#文字列を分割するにはどうすればよいですか?値が「101、a、b、c、d」の文字列があるとします。 101&a、b、c、dとして分割したい。これは、最初にコンマ文字が出現することによるものです。

47
Vishnu Y

string.Splitを使用して、返すサブストリングの数を指定できます。

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

戻り値:

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

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

2番目の部分では、+1は、コンマを含めることを避けます。

6

string.Split()関数を使用します。最高です。作成するチャンクの数。文字列 "abc、def、ghi"があり、countパラメータを2に設定してSplit()を呼び出すと、2つのチャンク "abc"と "def、ghi"が作成されます。

3
dotNET

.net Coreでは、次を使用できます。

var pieces = myString.Split(',', 2);

戻り値:

101
a,b,c,d
0
mark_h