拆分并joinC#string
可能重复:
首先拆分,然后join一个string的子集
我试图将一个string拆分成一个数组,取出第一个元素(使用它),然后将其余的数组join到一个单独的string中。
例:
theString = "Some Very Large String Here"
会成为:
theArray = [ "Some", "Very", "Large", "String", "Here" ]
然后我想在variables中设置第一个元素,稍后再使用它。
然后我想把数组的其余部分join到一个新的string中。
所以会变成:
firstElem = "Some"; restOfArray = "Very Large String Here"
我知道我可以使用theArray[0]
作为第一个元素,但是如何将数组的其余部分形成一个新的string呢?
你可以使用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);
这使得你不必join:
string restOfArray = array[1];
那么,这是我的“答案”。 它使用的事实,可以告诉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
方法非常相似,只是通过不同的方式。
你可以拆分和joinstring,但为什么不使用子string? 然后,你只能得到一个分裂,而不是分裂成5个部分的string,并重新join它。 最终的结果是一样的,但子string可能会快一点。
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); }