94

重複の可能性:
最初に分割してから、文字列のサブセットを結合します

文字列を配列に分割し、最初の要素を取り出して(それを使用して)、残りの配列を別の文字列に結合しようとしています。

例:

theString = "Some Very Large String Here"

次のようになります。

theArray = [ "Some", "Very", "Large", "String", "Here" ]

次に、最初の要素を変数に設定し、後で使用したいと考えています。

次に、残りの配列を新しい文字列に結合したいと思います。

したがって、次のようになります。

firstElem = "Some";
restOfArray = "Very Large String Here"

最初の要素に使用できることはわかってtheArray[0]いますが、配列の残りの部分を新しい文字列に連結するにはどうすればよいでしょうか?

4

3 に答える 3

200

あなたは使用することができstring.Splitますstring.Join

string theString = "Some Very Large String Here";
var array = theString.Split(' ');
string firstElem = array.First();
string restOfArray = string.Join(" ", array.Skip(1));

常に最初の要素のみを分割したいことがわかっている場合は、次を使用できます。

var array = theString.Split(' ', 2);

これにより、参加する必要がなくなります。

string restOfArray = array[1];
于 2012-10-18T19:03:37.540 に答える
24

さて、これが私の「答え」です。String.Splitには、分割する必要がある多くのアイテムを保持することができるという事実を使用します(他の回答に欠けていることがわかりました)。

string theString = "Some Very Large String Here";
var array = theString.Split(new [] { ' ' }, 2); // return at most 2 parts
// note: be sure to check it's not an empty array
string firstElem = array[0];
// note: be sure to check length first
string restOfArray = array[1];

これは方法と非常によく似ていますが、Substring手段が異なります。

于 2012-10-18T19:13:23.407 に答える
7

文字列を分割して結合することはできますが、部分文字列を使用してみませんか?そうすると、文字列を5つの部分に分割して再結合するのではなく、1つの分割だけになります。最終結果は同じですが、部分文字列はおそらく少し高速です。

string lcStart = "Some Very Large String Here";
int lnSpace = lcStart.IndexOf(' ');

if (lnSpace > -1)
{
    string lcFirst = lcStart.Substring(0, lnSpace);
    string lcRest = lcStart.Substring(lnSpace + 1);
}
于 2012-10-18T19:06:52.133 に答える